From a2447a007b43d865a8ca92f22b1143009ed51ee0 Mon Sep 17 00:00:00 2001 From: Olaf Tomalka Date: Sat, 7 Apr 2018 16:50:17 +0200 Subject: [PATCH] Added prettier files and updated editor snapshots --- README.md | 3 - lerna.json | 4 +- packages/contracts/README.md | 10 +- packages/contracts/ethpm.json | 11 +- .../migrations/2_optional_for_test.ts | 4 +- .../contracts/migrations/4_deploy_plcr.ts | 7 +- packages/contracts/migrations/utils/index.ts | 10 +- .../contracts/test/multisig/multsigwallet.ts | 33 +- packages/contracts/test/newsroom/newsroom.ts | 13 +- .../test/newsroom/newsroomFactory.ts | 10 +- .../test/tcr/contractRegistry/apply.ts | 51 +- .../parameterizer/challengeCanBeResolved.ts | 9 +- .../challengeReparameterization.ts | 5 +- .../test/tcr/parameterizer/claimReward.ts | 94 +- .../test/tcr/parameterizer/processProposal.ts | 75 +- .../test/tcr/parameterizer/propExists.ts | 2 +- .../proposeReparameterization.ts | 15 +- .../test/tcr/parameterizer/voterReward.ts | 11 +- .../test/tcr/parameterizer/voting.ts | 7 +- .../contracts/test/tcr/registry/appWasMade.ts | 2 +- packages/contracts/test/tcr/registry/apply.ts | 33 +- .../contracts/test/tcr/registry/challenge.ts | 36 +- .../test/tcr/registry/claimReward.ts | 52 +- .../contracts/test/tcr/registry/deposit.ts | 23 +- packages/contracts/test/tcr/registry/exit.ts | 31 +- .../test/tcr/registry/isWhitelisted.ts | 2 +- .../test/tcr/registry/tokenClaims.ts | 12 +- .../test/tcr/registry/updateStatus.ts | 51 +- .../test/tcr/registry/userStories.ts | 5 +- .../contracts/test/tcr/registry/withdraw.ts | 14 +- .../test/tcr/registryWithAppeals/apply.ts | 117 +- .../tcr/registryWithAppeals/claimReward.ts | 79 +- .../tcr/registryWithAppeals/grantAppeal.ts | 53 +- .../tcr/registryWithAppeals/isWhitelisted.ts | 2 +- .../tcr/registryWithAppeals/requestAppeal.ts | 58 +- .../tcr/registryWithAppeals/updateStatus.ts | 9 +- .../tcr/registryWithAppeals/voterReward.ts | 58 +- .../registryWithAppeals/whitelistAddress.ts | 65 +- .../test/tcr/restrictedRegistry/apply.ts | 58 +- .../contracts/test/utils/contractutils.ts | 72 +- packages/contracts/tsconfig.json | 2 +- packages/contracts/tslint.json | 10 +- packages/core/README.md | 8 +- packages/core/doc/examples/example.ts | 19 +- .../core/doc/examples/low-level/multisig.ts | 11 +- .../doc/examples/low-level/typed_contracts.ts | 33 +- packages/core/src/artifacts/EIP20.json | 445 ++-- .../core/src/artifacts/MultiSigWallet.json | 998 ++++---- packages/core/src/artifacts/Newsroom.json | 754 +++--- .../artifacts/OwnedAddressTCRWithAppeals.json | 2130 +++++++++-------- packages/core/src/artifacts/PLCRVoting.json | 1446 +++++------ .../core/src/artifacts/Parameterizer.json | 1136 ++++----- packages/core/src/civil.ts | 2 +- packages/core/src/content/contentprovider.ts | 2 +- packages/core/src/content/inmemoryprovider.ts | 4 +- packages/core/src/contracts/eip20.ts | 29 +- packages/core/src/contracts/multisig.ts | 61 +- packages/core/src/contracts/newsroom.ts | 67 +- .../contracts/ownedAddressTCRWithAppeals.ts | 151 +- packages/core/src/contracts/parameterizer.ts | 143 +- packages/core/src/contracts/voting.ts | 85 +- packages/core/src/globals.d.ts | 2 +- packages/core/src/types.ts | 16 +- packages/core/src/utils/abidecoder.ts | 7 +- packages/core/src/utils/contractutils.ts | 26 +- packages/core/src/utils/nodestream.ts | 2 +- packages/core/src/utils/web3wrapper.ts | 18 +- packages/core/tslint.json | 4 +- packages/dapp/README.md | 2 + packages/dapp/src/components/Listings.tsx | 17 +- packages/dapp/src/components/Main.tsx | 4 +- packages/dapp/src/components/Newsroom.tsx | 6 +- .../dapp/src/components/navbar/NavBar.tsx | 67 +- .../dapp/src/components/navbar/NavBarItem.tsx | 10 +- .../dapp/src/components/navbar/NavBarLink.tsx | 9 +- .../dapp/src/components/navbar/NavBarSpan.tsx | 11 +- packages/dapp/src/index.tsx | 5 +- packages/dapp/src/registerServiceWorker.ts | 47 +- packages/dapp/tsconfig.json | 17 +- packages/dapp/tsconfig.test.json | 2 +- packages/dapp/tslint.json | 4 +- packages/debug-ui/README.md | 1 + packages/debug-ui/scripts/assets/article.md | 3 + packages/debug-ui/scripts/civilActions.ts | 2 +- packages/debug-ui/scripts/deploy-newsroom.ts | 14 +- .../debug-ui/scripts/parameterizerActions.ts | 3 +- packages/debug-ui/scripts/tcrActions.ts | 5 +- packages/debug-ui/scripts/tsconfig.json | 16 +- packages/debug-ui/scripts/votingActions.ts | 10 +- packages/debug-ui/src/code/header.ts | 2 +- packages/debug-ui/src/code/indexEntry.ts | 89 +- packages/debug-ui/src/code/newsroomEntry.ts | 55 +- packages/debug-ui/src/code/parameterizer.ts | 32 +- packages/debug-ui/src/code/parameters.ts | 38 +- packages/debug-ui/src/code/prop.ts | 36 +- packages/debug-ui/tsconfig.json | 5 +- packages/debug-ui/tslint.json | 2 +- packages/dev-utils/README.md | 1 + .../scripts/generate-from-files/bin.ts | 36 +- .../scripts/generate-from-files/index.ts | 12 +- .../scripts/generate-from-files/utils.ts | 2 +- packages/dev-utils/scripts/strip-artifacts.ts | 2 +- packages/dev-utils/src/globals.d.ts | 4 +- packages/dev-utils/src/test/index.ts | 9 +- packages/dev-utils/src/test/test.d.ts | 6 +- packages/dev-utils/tslint.json | 4 +- packages/editor/out.zip | Bin 708528 -> 0 bytes packages/editor/out/favicon.ico | Bin 5430 -> 0 bytes packages/editor/out/iframe.html | 22 - packages/editor/out/index.html | 44 - .../manager.570ebc325831f69ceaf2.bundle.js | 1 - .../preview.935366e1b5564a8528fd.bundle.js | 1 - packages/editor/src/Editor.stories.tsx | 247 +- packages/editor/src/Editor.tsx | 56 +- .../__snapshots__/Editor.stories.storyshot | 1792 +++++++------- .../editor/src/__test__/storyshot.test.ts | 5 +- packages/editor/src/plugins/blockquote.tsx | 4 +- packages/editor/src/plugins/bold.tsx | 2 +- .../components/CredibilityIndicators.tsx | 76 +- .../editor/src/plugins/components/Image.tsx | 16 +- .../src/plugins/components/ImageModal.tsx | 10 +- .../src/plugins/components/Indicator.tsx | 34 +- .../editor/src/plugins/components/Link.tsx | 99 +- .../editor/src/plugins/components/Modal.tsx | 11 +- .../src/plugins/components/PullQuote.tsx | 41 +- .../editor/src/plugins/components/Title.tsx | 63 +- .../editor/src/plugins/components/ToolBar.tsx | 150 +- .../plugins/components/svg/OnTheGround.tsx | 34 +- .../components/svg/OriginalReporting.tsx | 33 +- .../plugins/components/svg/SourcesSited.tsx | 19 +- .../components/svg/SubjectSpecialist.tsx | 36 +- packages/editor/src/plugins/dropCap.tsx | 4 +- packages/editor/src/plugins/header.tsx | 8 +- packages/editor/src/plugins/image.tsx | 2 +- packages/editor/src/plugins/index.tsx | 30 +- packages/editor/src/plugins/italic.tsx | 2 +- packages/editor/src/plugins/link.tsx | 2 +- packages/editor/src/plugins/list.tsx | 11 +- packages/editor/src/plugins/paragraph.tsx | 10 +- packages/editor/src/plugins/pullQuote.tsx | 2 +- packages/editor/src/plugins/runin.tsx | 6 +- packages/editor/src/plugins/sidebar.tsx | 14 +- packages/editor/src/plugins/strikeThrough.tsx | 2 +- packages/editor/src/plugins/title.tsx | 12 +- .../editor/src/storyFixtures/blockquote.ts | 3 +- packages/editor/src/storyFixtures/bold.ts | 3 +- .../storyFixtures/credibilityIndicators.ts | 22 +- packages/editor/src/storyFixtures/dropCap.ts | 3 +- packages/editor/src/storyFixtures/image.ts | 6 +- .../editor/src/storyFixtures/imagebreakout.ts | 6 +- packages/editor/src/storyFixtures/italic.ts | 6 +- packages/editor/src/storyFixtures/link.ts | 9 +- packages/editor/src/storyFixtures/ol.ts | 19 +- .../editor/src/storyFixtures/paragraph.ts | 3 +- .../editor/src/storyFixtures/pullquote.ts | 6 +- packages/editor/src/storyFixtures/runin.ts | 3 +- .../editor/src/storyFixtures/strikeThrough.ts | 6 +- packages/editor/src/storyFixtures/title.ts | 6 +- packages/editor/src/storyFixtures/ul.ts | 19 +- packages/editor/src/types.d.ts | 14 +- packages/editor/tsconfig.json | 10 +- packages/editor/tslint.json | 4 +- packages/tslint-rules/README.md | 2 +- packages/utils/src/language.ts | 18 +- packages/utils/src/rxjs.ts | 32 +- packages/utils/test/language.ts | 25 +- packages/utils/tsconfig.json | 6 +- packages/utils/tslint.json | 4 +- tsconfig.json | 2 +- 169 files changed, 6160 insertions(+), 6385 deletions(-) delete mode 100644 packages/editor/out.zip delete mode 100755 packages/editor/out/favicon.ico delete mode 100644 packages/editor/out/iframe.html delete mode 100644 packages/editor/out/index.html delete mode 100644 packages/editor/out/static/manager.570ebc325831f69ceaf2.bundle.js delete mode 100644 packages/editor/out/static/preview.935366e1b5564a8528fd.bundle.js diff --git a/README.md b/README.md index 2d8d1379db..9f67dd2d55 100644 --- a/README.md +++ b/README.md @@ -105,9 +105,6 @@ To refresh the repository state as much as possible run: yarn clean && yarn lerna clean --yes && rm -r node_modules && yarn install ``` - - - 🐙 was here. [core-url]: /packages/core diff --git a/lerna.json b/lerna.json index 9a401be41d..0cabdb192c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,8 +1,6 @@ { "lerna": "2.9.0", - "packages": [ - "packages/*" - ], + "packages": ["packages/*"], "npmClient": "yarn", "useWorkspaces": true, "version": "independent" diff --git a/packages/contracts/README.md b/packages/contracts/README.md index c835f5fe58..155e79d3e3 100644 --- a/packages/contracts/README.md +++ b/packages/contracts/README.md @@ -49,11 +49,11 @@ Inside this package there are multiple smart-contracts from multiple open-source While we're working to get everything under LGPLv2.1 this is not currently possible. [`contracts`](./contracts) and [`test`](./test) folders are split into subfolders with specific names, code under those subfolders is licensed under licenses as follow: -| Subfolder | License | Original source | -| --------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | -| `tcr/` | [![license](https://img.shields.io/badge/license-Apache%20v2.0-green.svg)](./licenses/LICENSE-tcr) | [skmgoldin/tcr](https://github.com/skmgoldin/tcr) | -| `multisig/` | [![license](https://img.shields.io/badge/license-LGPL%20v2.1-green.svg)](./licenses/LICENSE-general) | [gnosis/MultiSigWallet](https://github.com/gnosis/MultiSigWallet) | -| `anything else` | [![license](https://img.shields.io/badge/license-LGPL%20v2.1-green.svg)](./licenses/LICENSE-general) | [civil/Civil](https://github.com/joincivil/Civil) | +| Subfolder | License | Original source | +| --------------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| `tcr/` | [![license](https://img.shields.io/badge/license-Apache%20v2.0-green.svg)](./licenses/LICENSE-tcr) | [skmgoldin/tcr](https://github.com/skmgoldin/tcr) | +| `multisig/` | [![license](https://img.shields.io/badge/license-LGPL%20v2.1-green.svg)](./licenses/LICENSE-general) | [gnosis/MultiSigWallet](https://github.com/gnosis/MultiSigWallet) | +| `anything else` | [![license](https://img.shields.io/badge/license-LGPL%20v2.1-green.svg)](./licenses/LICENSE-general) | [civil/Civil](https://github.com/joincivil/Civil) | ### Multisig diff --git a/packages/contracts/ethpm.json b/packages/contracts/ethpm.json index 82e9d21332..ea1224403d 100644 --- a/packages/contracts/ethpm.json +++ b/packages/contracts/ethpm.json @@ -4,7 +4,7 @@ "description": "Set of contracts for Civil, including Newsroom and TCR", "authors": [ "Nick Reynolds", - "Olaf Tomalka", + "Olaf Tomalka", "Mike Goldin", "Isaac Kang", "Terry Li", @@ -14,14 +14,7 @@ "Yorke Rhodes", "Mira Zeitlin" ], - "keywords": [ - "newsroom", - "civil", - "consensys", - "plcr", - "tokens", - "tcr" - ], + "keywords": ["newsroom", "civil", "consensys", "plcr", "tokens", "tcr"], "dependencies": { "tokens": "1.0.0", "dll": "1.0.3", diff --git a/packages/contracts/migrations/2_optional_for_test.ts b/packages/contracts/migrations/2_optional_for_test.ts index e2acf74042..773eded67c 100644 --- a/packages/contracts/migrations/2_optional_for_test.ts +++ b/packages/contracts/migrations/2_optional_for_test.ts @@ -20,7 +20,9 @@ module.exports = (deployer: any, network: string, accounts: string[]) => { allocation = totalSupply.div(new BN(originalCount, BASE_10)); await token.transfer(user, allocation); - if (addresses.length === 1) { return true; } + if (addresses.length === 1) { + return true; + } return giveTokensTo(addresses.slice(1), originalCount); } diff --git a/packages/contracts/migrations/4_deploy_plcr.ts b/packages/contracts/migrations/4_deploy_plcr.ts index a23b49dc16..eec9688164 100644 --- a/packages/contracts/migrations/4_deploy_plcr.ts +++ b/packages/contracts/migrations/4_deploy_plcr.ts @@ -1,6 +1,6 @@ /* global artifacts */ -import { approveEverything, config, inTesting} from "./utils"; +import { approveEverything, config, inTesting } from "./utils"; import { MAIN_NETWORK } from "./utils/consts"; const Token = artifacts.require("EIP20.sol"); @@ -20,10 +20,7 @@ module.exports = (deployer: any, network: string, accounts: string[]) => { tokenAddress = Token.address; } - await deployer.deploy( - PLCRVoting, - tokenAddress, - ); + await deployer.deploy(PLCRVoting, tokenAddress); if (inTesting(network)) { await approveEverything(accounts, Token.at(tokenAddress), PLCRVoting.address); diff --git a/packages/contracts/migrations/utils/index.ts b/packages/contracts/migrations/utils/index.ts index fbba13b257..c70488e225 100644 --- a/packages/contracts/migrations/utils/index.ts +++ b/packages/contracts/migrations/utils/index.ts @@ -2,10 +2,7 @@ import * as fs from "fs"; import { MAIN_NETWORK } from "./consts"; -export const config = JSON.parse( - fs - .readFileSync("../../conf/config.json") - .toString()); +export const config = JSON.parse(fs.readFileSync("../../conf/config.json").toString()); export function inTesting(network: string): boolean { return network !== MAIN_NETWORK && !(network in config.testnets); @@ -13,8 +10,9 @@ export function inTesting(network: string): boolean { export async function approveEverything(addresses: string[], token: any, target: string): Promise { await Promise.all( - addresses.map(async (user) => { + addresses.map(async user => { const balance = await token.balanceOf(user); await token.approve(target, balance, { from: user }); - })); + }), + ); } diff --git a/packages/contracts/test/multisig/multsigwallet.ts b/packages/contracts/test/multisig/multsigwallet.ts index b028a80fa6..00b75868ec 100644 --- a/packages/contracts/test/multisig/multsigwallet.ts +++ b/packages/contracts/test/multisig/multsigwallet.ts @@ -16,15 +16,13 @@ const INCLUDE_EXECUTED = true; const sendTransactionAsync = promisify(web3.eth.sendTransaction, web3.eth); const balanceAsync = promisify(web3.eth.getBalance, web3.eth); -contract("MultiSigWallet", (accounts) => { +contract("MultiSigWallet", accounts => { let instance: any; const REQUIRED_CONFIRMATIONS = 2; const NOT_WALLET_OWNER = accounts[9]; beforeEach(async () => { - instance = await MultiSigWallet.new( - [accounts[0], accounts[1], accounts[2]], - REQUIRED_CONFIRMATIONS); + instance = await MultiSigWallet.new([accounts[0], accounts[1], accounts[2]], REQUIRED_CONFIRMATIONS); }); describe("executeTransaction", () => { @@ -32,44 +30,49 @@ contract("MultiSigWallet", (accounts) => { const DEPOSIT = 1000; // Send money to the wallet contract - await sendTransactionAsync({to: instance.address, value: DEPOSIT, from: accounts[0]}); + await sendTransactionAsync({ to: instance.address, value: DEPOSIT, from: accounts[0] }); const balance = await balanceAsync(instance.address); expect(balance).to.be.bignumber.equal(DEPOSIT); // Add owner number 4 const addOwnerData = instance.contract.addOwner.getData(accounts[3]); const txIdAddOwner = getParamFromTxEvent( - await instance.submitTransaction(instance.address, 0, addOwnerData, {from: accounts[0]}), + await instance.submitTransaction(instance.address, 0, addOwnerData, { from: accounts[0] }), "transactionId", "Submission", ); // One pending transaction - expect(await instance.getTransactionIds(0, 1, INCLUDE_PENDING, EXCLUDE_EXECUTED)) - .to.be.deep.equal([txIdAddOwner]); + expect(await instance.getTransactionIds(0, 1, INCLUDE_PENDING, EXCLUDE_EXECUTED)).to.be.deep.equal([ + txIdAddOwner, + ]); // Updated required threshold to 1 const NEW_REQUIRED = 1; const updateRequirementsData = instance.contract.changeRequirement.getData(NEW_REQUIRED); const txIdChangeRequirement = getParamFromTxEvent( - await instance.submitTransaction(instance.address, 0, updateRequirementsData, {from: accounts[0]}), + await instance.submitTransaction(instance.address, 0, updateRequirementsData, { from: accounts[0] }), "transactionId", "Submission", ); // Two pending transactios - expect(await instance.getTransactionIds(0, 2, INCLUDE_EXECUTED, EXCLUDE_EXECUTED)) - .to.be.deep.equal([txIdAddOwner, txIdChangeRequirement]); + expect(await instance.getTransactionIds(0, 2, INCLUDE_EXECUTED, EXCLUDE_EXECUTED)).to.be.deep.equal([ + txIdAddOwner, + txIdChangeRequirement, + ]); // Confirm change requirement await instance.confirmTransaction(txIdChangeRequirement, { from: accounts[1] }); expect(await instance.required()).to.be.bignumber.equal(NEW_REQUIRED); - await expect(instance.executeTransaction(txIdAddOwner, {from: NOT_WALLET_OWNER})).to.eventually.be.rejected(); + await expect(instance.executeTransaction(txIdAddOwner, { from: NOT_WALLET_OWNER })).to.eventually.be.rejected(); - await instance.executeTransaction(txIdAddOwner, {from: accounts[0]}); - expect(await instance.getTransactionIds(0, 2, EXCLUDE_PENDING, INCLUDE_EXECUTED)) - .to.be.deep.equal([txIdAddOwner, txIdChangeRequirement]); + await instance.executeTransaction(txIdAddOwner, { from: accounts[0] }); + expect(await instance.getTransactionIds(0, 2, EXCLUDE_PENDING, INCLUDE_EXECUTED)).to.be.deep.equal([ + txIdAddOwner, + txIdChangeRequirement, + ]); }); }); }); diff --git a/packages/contracts/test/newsroom/newsroom.ts b/packages/contracts/test/newsroom/newsroom.ts index 1ea941c494..b6ad6cd56c 100644 --- a/packages/contracts/test/newsroom/newsroom.ts +++ b/packages/contracts/test/newsroom/newsroom.ts @@ -35,8 +35,7 @@ contract("Newsroom", (accounts: string[]) => { }); it("returns proper author", async () => { - await expect( - newsroom.author(id, { from: defaultAccount })).to.eventually.be.equal(accounts[1]); + await expect(newsroom.author(id, { from: defaultAccount })).to.eventually.be.equal(accounts[1]); }); it("works for approved content", async () => { @@ -219,9 +218,7 @@ contract("Newsroom", (accounts: string[]) => { }); it("doesn't work without editor role", async () => { - await expect( - newsroom.approveContent(id, { from: accounts[1] })) - .to.be.rejectedWith(REVERTED); + await expect(newsroom.approveContent(id, { from: accounts[1] })).to.be.rejectedWith(REVERTED); expect(await newsroom.isApproved(id)).to.be.false(); }); @@ -283,9 +280,7 @@ contract("Newsroom", (accounts: string[]) => { }); it("doesn't work without role", async () => { - await expect( - newsroom.denyContent(id, { from: accounts[1] })) - .to.be.rejectedWith(REVERTED); + await expect(newsroom.denyContent(id, { from: accounts[1] })).to.be.rejectedWith(REVERTED); }); it("fires an event", async () => { @@ -422,7 +417,7 @@ contract("Newsroom", (accounts: string[]) => { }); it("can't be used by non-owner", async () => { - await expect(newsroom.setName("something", {from: accounts[1]})).to.eventually.be.rejectedWith(REVERTED); + await expect(newsroom.setName("something", { from: accounts[1] })).to.eventually.be.rejectedWith(REVERTED); }); it("fires an event", async () => { diff --git a/packages/contracts/test/newsroom/newsroomFactory.ts b/packages/contracts/test/newsroom/newsroomFactory.ts index 2df2cdc370..3695e41b74 100644 --- a/packages/contracts/test/newsroom/newsroomFactory.ts +++ b/packages/contracts/test/newsroom/newsroomFactory.ts @@ -16,9 +16,9 @@ const CONTRACT_EVENT = "ContractInstantiation"; const NEWSROOM_NAME = "Newsroom name"; function createdContract(factory: any, txReceipt: Web3.TransactionReceipt): string { - const myLog = txReceipt.logs.find( - (log: any) => log.event === CONTRACT_EVENT && log.address === factory.address, - ) as Web3.DecodedLogEntry|undefined; + const myLog = txReceipt.logs.find((log: any) => log.event === CONTRACT_EVENT && log.address === factory.address) as + | Web3.DecodedLogEntry + | undefined; if (!myLog) { throw new Error("ContractInstantation log not found"); @@ -33,7 +33,7 @@ async function codeMatches(instance: any, clazz: any): Promise { expect(code).to.be.equal(clazz.deployedBytecode); } -contract("NewsroomFactory", (accounts) => { +contract("NewsroomFactory", accounts => { const [owner, secondOwner, thirdOwner] = accounts; let multisigFactoryInstance: any; @@ -43,7 +43,7 @@ contract("NewsroomFactory", (accounts) => { owners: string[], required: number = 1, name: string = NEWSROOM_NAME, - ): Promise<{newsroom: any, multisig: any}> { + ): Promise<{ newsroom: any; multisig: any }> { const receipt = await instance.create(name, owners, required); return { newsroom: Newsroom.at(createdContract(instance, receipt)), diff --git a/packages/contracts/test/tcr/contractRegistry/apply.ts b/packages/contracts/test/tcr/contractRegistry/apply.ts index 66b07053b0..9a1a9b692a 100644 --- a/packages/contracts/test/tcr/contractRegistry/apply.ts +++ b/packages/contracts/test/tcr/contractRegistry/apply.ts @@ -11,7 +11,7 @@ const NEWSROOM_NAME = "unused newsroom name"; const Newsroom = artifacts.require("Newsroom"); const AddressRegistry = artifacts.require("AddressRegistry"); -contract("ContractAddressRegistry", (accounts) => { +contract("ContractAddressRegistry", accounts => { describe("Function: apply", () => { const [applicant, troll] = accounts; const listing1 = "0x0000000000000000000000000000000000000001"; @@ -31,8 +31,9 @@ contract("ContractAddressRegistry", (accounts) => { }); it("should allow contract owner to apply on behalf of contract", async () => { - await expect(registry.apply(testNewsroom.address, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.fulfilled(); + await expect( + registry.apply(testNewsroom.address, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.fulfilled(); // get the struct in the mapping const applicationExpiry = await registry.getListingApplicationExpiry(newsroomAddress); @@ -48,26 +49,25 @@ contract("ContractAddressRegistry", (accounts) => { }); it("should not allow a listing to apply which has a pending application", async () => { - await registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant }); - await expect(registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }); + await expect( + registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it( - "should add a listing to the whitelist which went unchallenged in its application period", - async () => { - await registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant }); - await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); - await registry.updateStatus(newsroomAddress); - const result = await registry.getListingIsWhitelisted(newsroomAddress); - expect(result).to.be.true("listing didn't get whitelisted"); - }, - ); + it("should add a listing to the whitelist which went unchallenged in its application period", async () => { + await registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }); + await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); + await registry.updateStatus(newsroomAddress); + const result = await registry.getListingIsWhitelisted(newsroomAddress); + expect(result).to.be.true("listing didn't get whitelisted"); + }); it("should not allow a listing to apply which is already listed", async () => { await utils.addToWhitelist(newsroomAddress, utils.paramConfig.minDeposit, applicant, registry); - await expect(registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); }); @@ -81,20 +81,23 @@ contract("ContractAddressRegistry", (accounts) => { }); it("should allow a non-contract owner to apply", async () => { - await expect(registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant })) - .to.eventually.be.fulfilled(); + await expect( + registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.fulfilled(); }); }); it("should prevent non-contract address from being listed", async () => { - await expect(registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); it("should prevent non-contract address from being listed when registry cast to AddressRegistry", async () => { const parentRegistry = await AddressRegistry.at(registry.address); - await expect(parentRegistry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + parentRegistry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); }); }); diff --git a/packages/contracts/test/tcr/parameterizer/challengeCanBeResolved.ts b/packages/contracts/test/tcr/parameterizer/challengeCanBeResolved.ts index 5a62f35357..6a014888be 100644 --- a/packages/contracts/test/tcr/parameterizer/challengeCanBeResolved.ts +++ b/packages/contracts/test/tcr/parameterizer/challengeCanBeResolved.ts @@ -6,7 +6,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: challengeCanBeResolved", () => { const [proposer, challenger] = accounts; let parameterizer: any; @@ -21,9 +21,9 @@ contract("Parameterizer", (accounts) => { utils.toBaseTenBigNumber(51), parameterizer, proposer, - ); + ); - await parameterizer.challengeReparameterization(propID, { from: challenger}); + await parameterizer.challengeReparameterization(propID, { from: challenger }); await utils.advanceEvmTime(utils.paramConfig.pCommitStageLength); await utils.advanceEvmTime(utils.paramConfig.pRevealStageLength + 1); @@ -36,7 +36,8 @@ contract("Parameterizer", (accounts) => { "voteQuorum", utils.toBaseTenBigNumber(59), parameterizer, - proposer); + proposer, + ); await parameterizer.challengeReparameterization(propID, { from: challenger }); await utils.advanceEvmTime(utils.paramConfig.pCommitStageLength); diff --git a/packages/contracts/test/tcr/parameterizer/challengeReparameterization.ts b/packages/contracts/test/tcr/parameterizer/challengeReparameterization.ts index b8d6f4bec3..a481700082 100644 --- a/packages/contracts/test/tcr/parameterizer/challengeReparameterization.ts +++ b/packages/contracts/test/tcr/parameterizer/challengeReparameterization.ts @@ -10,7 +10,7 @@ const Token = artifacts.require("EIP20.sol"); configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: challengeReparameterization", () => { const [proposer, challenger, voter] = accounts; let parameterizer: any; @@ -59,8 +59,7 @@ contract("Parameterizer", (accounts) => { const proposalReceipt = await parameterizer.proposeReparameterization("voteQuorum", "51", { from: proposer }); const { propID } = proposalReceipt.logs[0].args; - const challengeReceipt = - await parameterizer.challengeReparameterization(propID, { from: challenger }); + const challengeReceipt = await parameterizer.challengeReparameterization(propID, { from: challenger }); const challengeID = challengeReceipt.logs[0].args.pollID; await utils.commitVote(voting, challengeID, "1", "10", "420", voter); diff --git a/packages/contracts/test/tcr/parameterizer/claimReward.ts b/packages/contracts/test/tcr/parameterizer/claimReward.ts index b1f5a7bc94..397812f599 100644 --- a/packages/contracts/test/tcr/parameterizer/claimReward.ts +++ b/packages/contracts/test/tcr/parameterizer/claimReward.ts @@ -10,7 +10,7 @@ const Token = artifacts.require("EIP20.sol"); configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: claimReward", () => { const [proposer, challenger, voterAlice, voterBob] = accounts; let parameterizer: any; @@ -32,8 +32,7 @@ contract("Parameterizer", (accounts) => { const { propID } = proposalReceipt.logs[0].args; - const challengeReceipt = - await parameterizer.challengeReparameterization(propID, { from: challenger }); + const challengeReceipt = await parameterizer.challengeReparameterization(propID, { from: challenger }); const challengeID = challengeReceipt.logs[0].args.pollID; @@ -49,56 +48,53 @@ contract("Parameterizer", (accounts) => { await voting.withdrawVotingRights("10", { from: voterAlice }); const voterAliceFinalBalance = await token.balanceOf.call(voterAlice); - const voterAliceExpected = voterAliceStartingBalance.add(utils.multiplyByPercentage( - utils.paramConfig.pMinDeposit, - utils.toBaseTenBigNumber(100).sub(utils.toBaseTenBigNumber(utils.paramConfig.pDispensationPct)).toNumber(), - )); + const voterAliceExpected = voterAliceStartingBalance.add( + utils.multiplyByPercentage( + utils.paramConfig.pMinDeposit, + utils + .toBaseTenBigNumber(100) + .sub(utils.toBaseTenBigNumber(utils.paramConfig.pDispensationPct)) + .toNumber(), + ), + ); expect(voterAliceFinalBalance).to.be.bignumber.equal(voterAliceExpected); }); it("should give the correct number of tokens to multiple voters on the winning side.", async () => { - const proposalReceipt = await parameterizer.proposeReparameterization("voteQuorum", "52", { from: proposer }); + const proposalReceipt = await parameterizer.proposeReparameterization("voteQuorum", "52", { from: proposer }); - const { propID } = proposalReceipt.logs[0].args; + const { propID } = proposalReceipt.logs[0].args; - const challengeReceipt = - await parameterizer.challengeReparameterization(propID, { from: challenger }); + const challengeReceipt = await parameterizer.challengeReparameterization(propID, { from: challenger }); - const challengeID = challengeReceipt.logs[0].args.pollID; + const challengeID = challengeReceipt.logs[0].args.pollID; - await utils.commitVote(voting, challengeID, "1", "10", "420", voterAlice); - await utils.commitVote(voting, challengeID, "1", "20", "420", voterBob); - await utils.advanceEvmTime(utils.paramConfig.pCommitStageLength + 1); + await utils.commitVote(voting, challengeID, "1", "10", "420", voterAlice); + await utils.commitVote(voting, challengeID, "1", "20", "420", voterBob); + await utils.advanceEvmTime(utils.paramConfig.pCommitStageLength + 1); - await voting.revealVote(challengeID, "1", "420", { from: voterAlice }); - await voting.revealVote(challengeID, "1", "420", { from: voterBob }); - await utils.advanceEvmTime(utils.paramConfig.pRevealStageLength + 1); + await voting.revealVote(challengeID, "1", "420", { from: voterAlice }); + await voting.revealVote(challengeID, "1", "420", { from: voterBob }); + await utils.advanceEvmTime(utils.paramConfig.pRevealStageLength + 1); - await parameterizer.processProposal(propID); + await parameterizer.processProposal(propID); - const voterAliceReward = await parameterizer.voterReward.call( - voterAlice, - challengeID, "420", - ); - await parameterizer.claimReward(challengeID, "420", { from: voterAlice }); - await voting.withdrawVotingRights("10", { from: voterAlice }); + const voterAliceReward = await parameterizer.voterReward.call(voterAlice, challengeID, "420"); + await parameterizer.claimReward(challengeID, "420", { from: voterAlice }); + await voting.withdrawVotingRights("10", { from: voterAlice }); - const voterBobReward = await parameterizer.voterReward.call( - voterBob, - challengeID, "420", - ); - await parameterizer.claimReward(challengeID, "420", { from: voterBob }); - await voting.withdrawVotingRights("20", { from: voterBob }); + const voterBobReward = await parameterizer.voterReward.call(voterBob, challengeID, "420"); + await parameterizer.claimReward(challengeID, "420", { from: voterBob }); + await voting.withdrawVotingRights("20", { from: voterBob }); - // TODO: do better than approximately. - expect(voterBobReward.toNumber(10)).to.be.closeTo( - voterAliceReward.mul(utils.toBaseTenBigNumber(2)).toNumber(10), - 2, - "Rewards were not properly distributed between voters", - ); - // TODO: add asserts for final balances - }, - ); + // TODO: do better than approximately. + expect(voterBobReward.toNumber(10)).to.be.closeTo( + voterAliceReward.mul(utils.toBaseTenBigNumber(2)).toNumber(10), + 2, + "Rewards were not properly distributed between voters", + ); + // TODO: add asserts for final balances + }); it("should not transfer tokens for an unresolved challenge", async () => { const proposerStartingBalance = await token.balanceOf(proposer); @@ -108,8 +104,7 @@ contract("Parameterizer", (accounts) => { const { propID } = proposalReceipt.logs[0].args; - const challengeReceipt = - await parameterizer.challengeReparameterization(propID, { from: challenger }); + const challengeReceipt = await parameterizer.challengeReparameterization(propID, { from: challenger }); const challengeID = challengeReceipt.logs[0].args.pollID; @@ -119,22 +114,17 @@ contract("Parameterizer", (accounts) => { await voting.revealVote(challengeID, "1", "420", { from: voterAlice }); await utils.advanceEvmTime(utils.paramConfig.pRevealStageLength + 1); - await expect(parameterizer.claimReward(challengeID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED); + await expect(parameterizer.claimReward(challengeID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + ); const proposerEndingBalance = await token.balanceOf.call(proposer); const proposerExpected = proposerStartingBalance.sub(utils.toBaseTenBigNumber(utils.paramConfig.pMinDeposit)); const aliceEndingBalance = await token.balanceOf.call(voterAlice); const aliceExpected = aliceStartingBalance.sub(utils.toBaseTenBigNumber(10)); - expect(proposerEndingBalance).to.be.bignumber.equal( - proposerExpected, - "proposers ending balance is incorrect", - ); - expect(aliceEndingBalance).to.be.bignumber.equal( - aliceExpected, - "alices ending balance is incorrect", - ); + expect(proposerEndingBalance).to.be.bignumber.equal(proposerExpected, "proposers ending balance is incorrect"); + expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, "alices ending balance is incorrect"); }); // it("should give zero tokens to a voter who cannot reveal a vote on the winning side."); diff --git a/packages/contracts/test/tcr/parameterizer/processProposal.ts b/packages/contracts/test/tcr/parameterizer/processProposal.ts index f59f61fa35..d30f9ad9a9 100644 --- a/packages/contracts/test/tcr/parameterizer/processProposal.ts +++ b/packages/contracts/test/tcr/parameterizer/processProposal.ts @@ -10,7 +10,7 @@ const Token = artifacts.require("EIP20.sol"); configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: processProposal", () => { const [proposer, challenger, voter] = accounts; let parameterizer: any; @@ -40,7 +40,7 @@ contract("Parameterizer", (accounts) => { ); }); - it("should not set new parameters if a proposal\'s processBy date has passed", async () => { + it("should not set new parameters if a proposal's processBy date has passed", async () => { const receipt = await parameterizer.proposeReparameterization("voteQuorum", "69", { from: proposer }); const { propID } = receipt.logs[0].args; @@ -56,50 +56,51 @@ contract("Parameterizer", (accounts) => { ); }); - it("should not set new parameters if a proposal\'s processBy date has passed, " + - "but should resolve any challenges against the domain", async () => { - const proposerStartingBalance = await token.balanceOf(proposer); - const challengerStartingBalance = await token.balanceOf(challenger); + it( + "should not set new parameters if a proposal's processBy date has passed, " + + "but should resolve any challenges against the domain", + async () => { + const proposerStartingBalance = await token.balanceOf(proposer); + const challengerStartingBalance = await token.balanceOf(challenger); - const receipt = await parameterizer.proposeReparameterization("voteQuorum", "69", { from: proposer }); + const receipt = await parameterizer.proposeReparameterization("voteQuorum", "69", { from: proposer }); - const { propID } = receipt.logs[0].args; + const { propID } = receipt.logs[0].args; - const challengeReceipt = - await parameterizer.challengeReparameterization(propID, { from: challenger }); + const challengeReceipt = await parameterizer.challengeReparameterization(propID, { from: challenger }); - const { pollID } = challengeReceipt.logs[0].args; - await utils.commitVote(voting, pollID, "0", "10", "420", voter); - await utils.advanceEvmTime(utils.paramConfig.pCommitStageLength + 1); + const { pollID } = challengeReceipt.logs[0].args; + await utils.commitVote(voting, pollID, "0", "10", "420", voter); + await utils.advanceEvmTime(utils.paramConfig.pCommitStageLength + 1); - await voting.revealVote(pollID, "0", "420", { from: voter }); + await voting.revealVote(pollID, "0", "420", { from: voter }); - const processBy = await parameterizer.getPropProcessBy(propID); - await utils.advanceEvmTime(processBy.toNumber() + 1); + const processBy = await parameterizer.getPropProcessBy(propID); + await utils.advanceEvmTime(processBy.toNumber() + 1); - await parameterizer.processProposal(propID); + await parameterizer.processProposal(propID); - const voteQuorum = await parameterizer.get("voteQuorum"); - expect(voteQuorum).to.be.bignumber.equal( - utils.paramConfig.voteQuorum, - "A proposal whose processBy date passed was able to update the parameterizer", - ); + const voteQuorum = await parameterizer.get("voteQuorum"); + expect(voteQuorum).to.be.bignumber.equal( + utils.paramConfig.voteQuorum, + "A proposal whose processBy date passed was able to update the parameterizer", + ); - const proposerFinalBalance = await token.balanceOf(proposer); - const proposerExpected = proposerStartingBalance.sub(new BN(utils.paramConfig.pMinDeposit, 10)); - expect(proposerFinalBalance).to.be.bignumber.equal( - proposerExpected, - "The challenge loser\'s token balance is not as expected", - ); + const proposerFinalBalance = await token.balanceOf(proposer); + const proposerExpected = proposerStartingBalance.sub(new BN(utils.paramConfig.pMinDeposit, 10)); + expect(proposerFinalBalance).to.be.bignumber.equal( + proposerExpected, + "The challenge loser's token balance is not as expected", + ); - const challengerFinalBalance = await token.balanceOf.call(challenger); - const winnings = - utils.multiplyByPercentage(utils.paramConfig.pMinDeposit, utils.paramConfig.pDispensationPct); - const challengerExpected = challengerStartingBalance.add(winnings); - expect(challengerFinalBalance).to.be.bignumber.equal( - challengerExpected, - "The challenge winner\'s token balance is not as expected", - ); - }); + const challengerFinalBalance = await token.balanceOf.call(challenger); + const winnings = utils.multiplyByPercentage(utils.paramConfig.pMinDeposit, utils.paramConfig.pDispensationPct); + const challengerExpected = challengerStartingBalance.add(winnings); + expect(challengerFinalBalance).to.be.bignumber.equal( + challengerExpected, + "The challenge winner's token balance is not as expected", + ); + }, + ); }); }); diff --git a/packages/contracts/test/tcr/parameterizer/propExists.ts b/packages/contracts/test/tcr/parameterizer/propExists.ts index 8814f7c03c..8079a01679 100644 --- a/packages/contracts/test/tcr/parameterizer/propExists.ts +++ b/packages/contracts/test/tcr/parameterizer/propExists.ts @@ -6,7 +6,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: propExists", () => { const [proposer] = accounts; let parameterizer: any; diff --git a/packages/contracts/test/tcr/parameterizer/proposeReparameterization.ts b/packages/contracts/test/tcr/parameterizer/proposeReparameterization.ts index 2f70f1c1c2..10e4f55471 100644 --- a/packages/contracts/test/tcr/parameterizer/proposeReparameterization.ts +++ b/packages/contracts/test/tcr/parameterizer/proposeReparameterization.ts @@ -9,7 +9,7 @@ const Token = artifacts.require("EIP20.sol"); configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: proposeReparameterization", () => { const [proposer, secondProposer] = accounts; const pMinDeposit = utils.toBaseTenBigNumber(utils.paramConfig.pMinDeposit); @@ -45,22 +45,25 @@ contract("Parameterizer", (accounts) => { it("should not allow a NOOP reparameterization", async () => { await parameterizer.proposeReparameterization("voteQuorum", "51", { from: proposer }); - await expect(parameterizer.proposeReparameterization("voteQuorum", "51", { from: proposer })) - .to.eventually.be.rejectedWith(REVERTED, "Performed NOOP reparameterization"); + await expect( + parameterizer.proposeReparameterization("voteQuorum", "51", { from: proposer }), + ).to.eventually.be.rejectedWith(REVERTED, "Performed NOOP reparameterization"); }); it("should not allow a reparameterization for a proposal that already exists", async () => { const applicantStartingBalance = await token.balanceOf.call(secondProposer); await parameterizer.proposeReparameterization("voteQuorum", "51", { from: proposer }); - await expect(parameterizer.proposeReparameterization("voteQuorum", "51", { from: secondProposer })) - .to.eventually.be.rejectedWith(REVERTED, "should not have been able to make duplicate proposal"); + await expect( + parameterizer.proposeReparameterization("voteQuorum", "51", { from: secondProposer }), + ).to.eventually.be.rejectedWith(REVERTED, "should not have been able to make duplicate proposal"); const applicantEndingBalance = await token.balanceOf.call(secondProposer); expect(applicantEndingBalance).to.be.bignumber.equal( applicantStartingBalance, - "starting balance and ending balance should have been equal"); + "starting balance and ending balance should have been equal", + ); }); }); }); diff --git a/packages/contracts/test/tcr/parameterizer/voterReward.ts b/packages/contracts/test/tcr/parameterizer/voterReward.ts index abf143fb45..1a146be252 100644 --- a/packages/contracts/test/tcr/parameterizer/voterReward.ts +++ b/packages/contracts/test/tcr/parameterizer/voterReward.ts @@ -8,7 +8,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); configureChai(chai); const expect = chai.expect; -contract("Parameterizer", (accounts) => { +contract("Parameterizer", accounts => { describe("Function: voterReward", () => { const [proposer, challenger, voterAlice] = accounts; let parameterizer: any; @@ -40,16 +40,11 @@ contract("Parameterizer", (accounts) => { await parameterizer.processProposal(propID); // Grab the challenge struct after the proposal has been processed - const voterTokens = await voting.getNumPassingTokens( - voterAlice, - challengeID, - "420", - false, - ); // 10 + const voterTokens = await voting.getNumPassingTokens(voterAlice, challengeID, "420", false); // 10 const rewardPool = await parameterizer.getChallengeRewardPool(challengeID); // 250,000 const totalTokens = await parameterizer.getChallengeWinningTokens(challengeID); // 10 - const expectedVoterReward = (voterTokens.mul(rewardPool)).div(totalTokens); // 250,000 + const expectedVoterReward = voterTokens.mul(rewardPool).div(totalTokens); // 250,000 const voterReward = await parameterizer.voterReward(voterAlice, challengeID, "420"); expect(expectedVoterReward).to.be.bignumber.equal( diff --git a/packages/contracts/test/tcr/parameterizer/voting.ts b/packages/contracts/test/tcr/parameterizer/voting.ts index 1f19646c73..1b9d07365b 100644 --- a/packages/contracts/test/tcr/parameterizer/voting.ts +++ b/packages/contracts/test/tcr/parameterizer/voting.ts @@ -9,7 +9,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); configureChai(chai); const expect = chai.expect; -contract("PLCRVoting", (accounts) => { +contract("PLCRVoting", accounts => { describe("Function: commitVote", () => { const [applicant, challenger, voter, applicant2] = accounts; const listingAddress1 = "0x1a5cdcFBA600e0c669795e0B65c344D5A37a4d5A"; @@ -41,10 +41,7 @@ contract("PLCRVoting", (accounts) => { const insertPoint = await voting.getInsertPointForNumTokens(voter, 6); const expectedInsertPoint = 0; - expect(insertPoint).to.be.bignumber.equal( - expectedInsertPoint, - "The insert point was not correct", - ); + expect(insertPoint).to.be.bignumber.equal(expectedInsertPoint, "The insert point was not correct"); }); }); }); diff --git a/packages/contracts/test/tcr/registry/appWasMade.ts b/packages/contracts/test/tcr/registry/appWasMade.ts index 21a3fbb829..7a6eb2ece9 100644 --- a/packages/contracts/test/tcr/registry/appWasMade.ts +++ b/packages/contracts/test/tcr/registry/appWasMade.ts @@ -6,7 +6,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: appWasMade", () => { const [applicant] = accounts; diff --git a/packages/contracts/test/tcr/registry/apply.ts b/packages/contracts/test/tcr/registry/apply.ts index 1003b3acf4..dee8ee07d1 100644 --- a/packages/contracts/test/tcr/registry/apply.ts +++ b/packages/contracts/test/tcr/registry/apply.ts @@ -7,7 +7,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("AddressRegistry", (accounts) => { +contract("AddressRegistry", accounts => { describe("Function: apply", () => { const [applicant] = accounts; const listing1 = "0x0000000000000000000000000000000000000001"; @@ -18,7 +18,7 @@ contract("AddressRegistry", (accounts) => { }); it("should allow a new listing to apply", async () => { - await registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant }); + await registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }); // get the struct in the mapping // TODO: getting structs is undefined behavior, convert this to multiple gets const applicationExpiry = await registry.getListingApplicationExpiry(listing1); @@ -33,26 +33,25 @@ contract("AddressRegistry", (accounts) => { }); it("should not allow a listing to apply which has a pending application", async () => { - await registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant }); - await expect(registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }); + await expect( + registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it( - "should add a listing to the whitelist which went unchallenged in its application period", - async () => { - await registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant }); - await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); - await registry.updateStatus(listing1); - const result = await registry.getListingIsWhitelisted(listing1); - expect(result).to.be.true("listing didn't get whitelisted"); - }, - ); + it("should add a listing to the whitelist which went unchallenged in its application period", async () => { + await registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }); + await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); + await registry.updateStatus(listing1); + const result = await registry.getListingIsWhitelisted(listing1); + expect(result).to.be.true("listing didn't get whitelisted"); + }); it("should not allow a listing to apply which is already listed", async () => { await utils.addToWhitelist(listing1, utils.paramConfig.minDeposit, applicant, registry); - await expect(registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); }); }); diff --git a/packages/contracts/test/tcr/registry/challenge.ts b/packages/contracts/test/tcr/registry/challenge.ts index e623353f0d..7443c7ecd6 100644 --- a/packages/contracts/test/tcr/registry/challenge.ts +++ b/packages/contracts/test/tcr/registry/challenge.ts @@ -10,7 +10,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: challenge", () => { const [applicant, challenger, voter, proposer] = accounts; const listing3 = "0x0000000000000000000000000000000000000003"; @@ -46,9 +46,11 @@ contract("Registry", (accounts) => { const challengerFinalBalance = await token.balanceOf.call(challenger); // Note edge case: no voters, so challenger gets entire stake - const expectedFinalBalance = - challengerStartingBalance.add(utils.toBaseTenBigNumber(utils.paramConfig.minDeposit)); - expect(challengerFinalBalance).to.be.bignumber.equal(expectedFinalBalance, + const expectedFinalBalance = challengerStartingBalance.add( + utils.toBaseTenBigNumber(utils.paramConfig.minDeposit), + ); + expect(challengerFinalBalance).to.be.bignumber.equal( + expectedFinalBalance, "Reward not properly disbursed to challenger", ); }); @@ -67,9 +69,11 @@ contract("Registry", (accounts) => { const challengerFinalBalance = await token.balanceOf.call(challenger); // Note edge case: no voters, so challenger gets entire stake - const expectedFinalBalance = - challengerStartingBalance.add(utils.toBaseTenBigNumber(utils.paramConfig.minDeposit)); - expect(challengerFinalBalance).to.be.bignumber.equal(expectedFinalBalance, + const expectedFinalBalance = challengerStartingBalance.add( + utils.toBaseTenBigNumber(utils.paramConfig.minDeposit), + ); + expect(challengerFinalBalance).to.be.bignumber.equal( + expectedFinalBalance, "Reward not properly disbursed to challenger", ); }); @@ -86,15 +90,13 @@ contract("Registry", (accounts) => { await registry.updateStatus(listing5); const isWhitelisted = await registry.getListingIsWhitelisted(listing5); - expect(isWhitelisted).to.be.true( - "An application which should have succeeded failed", - ); + expect(isWhitelisted).to.be.true("An application which should have succeeded failed"); const unstakedDeposit = await registry.getListingUnstakedDeposit(listing5); - const expectedUnstakedDeposit = - minDeposit.add(minDeposit.mul(utils.paramConfig.dispensationPct).div(100)); + const expectedUnstakedDeposit = minDeposit.add(minDeposit.mul(utils.paramConfig.dispensationPct).div(100)); - expect(unstakedDeposit).to.be.bignumber.equal(expectedUnstakedDeposit, + expect(unstakedDeposit).to.be.bignumber.equal( + expectedUnstakedDeposit, "The challenge winner was not properly disbursed their tokens", ); }); @@ -116,8 +118,10 @@ contract("Registry", (accounts) => { const unstakedDeposit = await registry.getListingUnstakedDeposit(listing6); const expectedUnstakedDeposit = minDeposit.add( - minDeposit.mul(utils.toBaseTenBigNumber(utils.paramConfig.dispensationPct).div(utils.toBaseTenBigNumber(100)))); - expect(unstakedDeposit).to.be.bignumber.equal(expectedUnstakedDeposit, + minDeposit.mul(utils.toBaseTenBigNumber(utils.paramConfig.dispensationPct).div(utils.toBaseTenBigNumber(100))), + ); + expect(unstakedDeposit).to.be.bignumber.equal( + expectedUnstakedDeposit, "The challenge winner was not properly disbursed their tokens", ); }); @@ -138,7 +142,7 @@ contract("Registry", (accounts) => { await parameterizer.processProposal(propID); const challengerStartingBal = await token.balanceOf(challenger); - registry.challenge(listing7, "", { from: challenger}); + registry.challenge(listing7, "", { from: challenger }); const challengerFinalBal = await token.balanceOf(challenger); expect(challengerStartingBal).to.be.bignumber.equal(challengerFinalBal, "Tokens were not returned to challenger"); diff --git a/packages/contracts/test/tcr/registry/claimReward.ts b/packages/contracts/test/tcr/registry/claimReward.ts index a4332cfd2c..c9f1262f4f 100644 --- a/packages/contracts/test/tcr/registry/claimReward.ts +++ b/packages/contracts/test/tcr/registry/claimReward.ts @@ -10,7 +10,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: claimReward", () => { const [applicant, challenger, voterAlice] = accounts; const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); @@ -60,7 +60,8 @@ contract("Registry", (accounts) => { const aliceExpected = aliceStartingBalance.add(aliceVoterReward); const aliceFinalBalance = await token.balanceOf(voterAlice); - expect(aliceFinalBalance).to.be.bignumber.equal(aliceExpected, + expect(aliceFinalBalance).to.be.bignumber.equal( + aliceExpected, "alice should have the same balance as she started", ); }); @@ -69,8 +70,9 @@ contract("Registry", (accounts) => { await utils.addToWhitelist(listing9, minDeposit, applicant, registry); const nonPollID = "666"; - await expect(registry.claimReward(nonPollID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED); + await expect(registry.claimReward(nonPollID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + ); }); it("should revert if provided salt is incorrect", async () => { @@ -92,18 +94,19 @@ contract("Registry", (accounts) => { const aliceFinalBalance = await token.balanceOf(voterAlice); const expectedBalance = applicantStartingBalance.sub(minDeposit); - expect(applicantFinalBalance).to.be.bignumber.equal(expectedBalance, + expect(applicantFinalBalance).to.be.bignumber.equal( + expectedBalance, "applicants final balance should be what they started with minus the minDeposit", ); - expect(aliceFinalBalance).to.be.bignumber.equal(aliceStartBal.sub(utils.toBaseTenBigNumber(500)), + expect(aliceFinalBalance).to.be.bignumber.equal( + aliceStartBal.sub(utils.toBaseTenBigNumber(500)), "alices final balance should be exactly the same as her starting balance", ); // Update status await registry.updateStatus(listing10, { from: applicant }); - await expect(registry.claimReward(pollID, "421", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED); + await expect(registry.claimReward(pollID, "421", { from: voterAlice })).to.eventually.be.rejectedWith(REVERTED); }); it("should not transfer tokens if msg.sender has already claimed tokens for a challenge", async () => { @@ -129,22 +132,21 @@ contract("Registry", (accounts) => { // Claim reward await registry.claimReward(pollID, "420", { from: voterAlice }); - await expect(registry.claimReward(pollID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED, "should not have been able to call claimReward twice"); + await expect(registry.claimReward(pollID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + "should not have been able to call claimReward twice", + ); const applicantEndingBalance = await token.balanceOf(applicant); const appExpected = applicantStartingBalance.sub(minDeposit); const aliceEndingBalance = await token.balanceOf(voterAlice); - const aliceExpected = aliceStartingBalance.add(minDeposit.div(utils.toBaseTenBigNumber(2))) - .sub(utils.toBaseTenBigNumber(500)); + const aliceExpected = aliceStartingBalance + .add(minDeposit.div(utils.toBaseTenBigNumber(2))) + .sub(utils.toBaseTenBigNumber(500)); - expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, - "applicants ending balance is incorrect", - ); - expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, - "alices ending balance is incorrect", - ); + expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, "applicants ending balance is incorrect"); + expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, "alices ending balance is incorrect"); }); it("should not transfer tokens for an unresolved challenge", async () => { @@ -164,8 +166,10 @@ contract("Registry", (accounts) => { await voting.revealVote(pollID, "0", "420", { from: voterAlice }); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await expect(registry.claimReward(pollID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED, "should not have been able to claimReward for unresolved challenge"); + await expect(registry.claimReward(pollID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + "should not have been able to claimReward for unresolved challenge", + ); const applicantEndingBalance = await token.balanceOf.call(applicant); const appExpected = applicantStartingBalance.sub(minDeposit); @@ -173,12 +177,8 @@ contract("Registry", (accounts) => { const aliceEndingBalance = await token.balanceOf.call(voterAlice); const aliceExpected = aliceStartingBalance.sub(utils.toBaseTenBigNumber(500)); - expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, - "applicants ending balance is incorrect", - ); - expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, - "alices ending balance is incorrect", - ); + expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, "applicants ending balance is incorrect"); + expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, "alices ending balance is incorrect"); }); }); }); diff --git a/packages/contracts/test/tcr/registry/deposit.ts b/packages/contracts/test/tcr/registry/deposit.ts index 799ff0d2c9..9a77ae42c7 100644 --- a/packages/contracts/test/tcr/registry/deposit.ts +++ b/packages/contracts/test/tcr/registry/deposit.ts @@ -7,7 +7,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: deposit", () => { const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); const incAmount = minDeposit.div(utils.toBaseTenBigNumber(2)); @@ -29,7 +29,8 @@ contract("Registry", (accounts) => { const unstakedDeposit = await registry.getListingUnstakedDeposit(listing13); const expectedAmount = incAmount.add(minDeposit); - expect(unstakedDeposit).to.be.bignumber.equal(expectedAmount, + expect(unstakedDeposit).to.be.bignumber.equal( + expectedAmount, "Unstaked deposit should be equal to the sum of the original + increase amount", ); }); @@ -41,8 +42,10 @@ contract("Registry", (accounts) => { const unstakedDeposit = await registry.getListingUnstakedDeposit(listing14); const expectedAmount = incAmount.add(minDeposit); - expect(unstakedDeposit).to.be.bignumber.equal(expectedAmount, - "Deposit should have increased for pending application"); + expect(unstakedDeposit).to.be.bignumber.equal( + expectedAmount, + "Deposit should have increased for pending application", + ); }); it("should increase deposit for a whitelisted, challenged listing", async () => { @@ -57,15 +60,19 @@ contract("Registry", (accounts) => { const expectedAmount = originalDeposit.add(incAmount).sub(minDeposit); - expect(afterIncDeposit).to.be.bignumber.equal(expectedAmount, - "Deposit should have increased for whitelisted, challenged listing"); + expect(afterIncDeposit).to.be.bignumber.equal( + expectedAmount, + "Deposit should have increased for whitelisted, challenged listing", + ); }); it("should not increase deposit for a listing not owned by the msg.sender", async () => { await utils.addToWhitelist(listing16, minDeposit, applicant, registry); - await expect(registry.deposit(listing16, incAmount, { from: challenger })) - .to.eventually.be.rejectedWith(REVERTED, "Deposit should not have increased when sent by the wrong msg.sender"); + await expect(registry.deposit(listing16, incAmount, { from: challenger })).to.eventually.be.rejectedWith( + REVERTED, + "Deposit should not have increased when sent by the wrong msg.sender", + ); }); }); }); diff --git a/packages/contracts/test/tcr/registry/exit.ts b/packages/contracts/test/tcr/registry/exit.ts index 5b2ff87b5d..1875a5105f 100644 --- a/packages/contracts/test/tcr/registry/exit.ts +++ b/packages/contracts/test/tcr/registry/exit.ts @@ -9,7 +9,7 @@ const Token = artifacts.require("EIP20"); configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: exit", () => { const [applicant, challenger, voter] = accounts; const listing17 = "0x0000000000000000000000000000000000000017"; @@ -37,8 +37,9 @@ contract("Registry", (accounts) => { expect(isWhitelistedAfterExit).to.be.false("the listing was not removed on exit"); const finalApplicantTokenHoldings = await token.balanceOf(applicant); - expect(initialApplicantTokenHoldings).to.be.bignumber.equal(finalApplicantTokenHoldings, - "the applicant\'s tokens were not returned to them after exiting the registry", + expect(initialApplicantTokenHoldings).to.be.bignumber.equal( + finalApplicantTokenHoldings, + "the applicant's tokens were not returned to them after exiting the registry", ); }); @@ -51,17 +52,17 @@ contract("Registry", (accounts) => { expect(isWhitelisted).to.be.true("the listing was not added to the registry"); await registry.challenge(listing18, "", { from: challenger }); - await expect(registry.exitListing(listing18, { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED, "exit succeeded when it should have failed"); + await expect(registry.exitListing(listing18, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "exit succeeded when it should have failed", + ); const isWhitelistedAfterExit = await registry.getListingIsWhitelisted(listing18); - expect(isWhitelistedAfterExit).to.be.true( - "the listing was able to exit while a challenge was active", - ); + expect(isWhitelistedAfterExit).to.be.true("the listing was able to exit while a challenge was active"); const finalApplicantTokenHoldings = await token.balanceOf(applicant); expect(initialApplicantTokenHoldings.gt(finalApplicantTokenHoldings)).to.be.true( - "the applicant\'s tokens were returned in spite of failing to exit", + "the applicant's tokens were returned in spite of failing to exit", ); // Clean up state, remove consensys.net (it fails its challenge due to draw) @@ -69,15 +70,15 @@ contract("Registry", (accounts) => { await registry.updateStatus(listing18); }); - it("should not allow a listing to be exited by someone who doesn\'t own it", async () => { + it("should not allow a listing to be exited by someone who doesn't own it", async () => { await utils.addToWhitelist(listing18, utils.paramConfig.minDeposit, applicant, registry); - await expect(registry.exitListing(listing18, { from: voter })) - .to.eventually.be.rejectedWith(REVERTED, "exit succeeded when it should have failed"); - const isWhitelistedAfterExit = await registry.getListingIsWhitelisted(listing18); - expect(isWhitelistedAfterExit).to.be.true( - "the listing was exited by someone other than its owner", + await expect(registry.exitListing(listing18, { from: voter })).to.eventually.be.rejectedWith( + REVERTED, + "exit succeeded when it should have failed", ); + const isWhitelistedAfterExit = await registry.getListingIsWhitelisted(listing18); + expect(isWhitelistedAfterExit).to.be.true("the listing was exited by someone other than its owner"); }); }); }); diff --git a/packages/contracts/test/tcr/registry/isWhitelisted.ts b/packages/contracts/test/tcr/registry/isWhitelisted.ts index 7ee1117e6e..cc40bb51a0 100644 --- a/packages/contracts/test/tcr/registry/isWhitelisted.ts +++ b/packages/contracts/test/tcr/registry/isWhitelisted.ts @@ -6,7 +6,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: isWhitelisted", () => { const [applicant] = accounts; const listing19 = "0x0000000000000000000000000000000000000019"; diff --git a/packages/contracts/test/tcr/registry/tokenClaims.ts b/packages/contracts/test/tcr/registry/tokenClaims.ts index f391501315..6d6dd9d47d 100644 --- a/packages/contracts/test/tcr/registry/tokenClaims.ts +++ b/packages/contracts/test/tcr/registry/tokenClaims.ts @@ -8,7 +8,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: tokenClaims", () => { const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); const [applicant, challenger, voter] = accounts; @@ -36,14 +36,16 @@ contract("Registry", (accounts) => { await registry.updateStatus(listing20, { from: challenger }); const initialHasClaimed = await registry.tokenClaims(pollID, voter); - expect(initialHasClaimed).to.be.false("The voter is purported to have claimed " + - "their reward, when in fact they have not"); + expect(initialHasClaimed).to.be.false( + "The voter is purported to have claimed " + "their reward, when in fact they have not", + ); await registry.claimReward(pollID, "420", { from: voter }); const finalHasClaimed = await registry.tokenClaims.call(pollID, voter); - expect(finalHasClaimed).to.be.true("The voter is purported to not have claimed " + - "their reward, when in fact they have"); + expect(finalHasClaimed).to.be.true( + "The voter is purported to not have claimed " + "their reward, when in fact they have", + ); }); }); }); diff --git a/packages/contracts/test/tcr/registry/updateStatus.ts b/packages/contracts/test/tcr/registry/updateStatus.ts index 3cdf8ffe4b..cd8c66be49 100644 --- a/packages/contracts/test/tcr/registry/updateStatus.ts +++ b/packages/contracts/test/tcr/registry/updateStatus.ts @@ -7,7 +7,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: updateStatus", () => { const [applicant, challenger] = accounts; const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); @@ -34,16 +34,20 @@ contract("Registry", (accounts) => { it("should not whitelist a listing that is still pending an application", async () => { await registry.apply(listing22, minDeposit, "", { from: applicant }); - await expect(registry.updateStatus(listing22, { from: applicant })) - .to.be.rejectedWith(REVERTED, "Listing should not have been whitelisted"); + await expect(registry.updateStatus(listing22, { from: applicant })).to.be.rejectedWith( + REVERTED, + "Listing should not have been whitelisted", + ); }); it("should not whitelist a listing that is currently being challenged", async () => { await registry.apply(listing23, minDeposit, "", { from: applicant }); await registry.challenge(listing23, "", { from: challenger }); - await expect(registry.updateStatus(listing23)) - .to.eventually.be.rejectedWith(REVERTED, "Listing should not have been whitelisted"); + await expect(registry.updateStatus(listing23)).to.eventually.be.rejectedWith( + REVERTED, + "Listing should not have been whitelisted", + ); }); it("should not whitelist a listing that failed a challenge", async () => { @@ -59,22 +63,29 @@ contract("Registry", (accounts) => { }); it("should not be possible to add a listing to the whitelist just by calling updateStatus", async () => { - await expect(registry.updateStatus(listing25, { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED, "Listing should not have been whitelisted"); + await expect(registry.updateStatus(listing25, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Listing should not have been whitelisted", + ); }); - it("should not be possible to add a listing to the whitelist just " + - "by calling updateStatus after it has been previously removed", async () => { - await utils.addToWhitelist(listing26, minDeposit, applicant, registry); - const resultOne = await registry.getListingIsWhitelisted(listing26); - expect(resultOne).to.be.true("Listing should have been whitelisted"); - - await registry.exitListing(listing26, { from: applicant }); - const resultTwo = await registry.getListingIsWhitelisted(listing26); - expect(resultTwo).to.be.false("Listing should not be in the whitelist"); - - await expect(registry.updateStatus(listing26, { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED, "Listing should not have been whitelisted"); - }); + it( + "should not be possible to add a listing to the whitelist just " + + "by calling updateStatus after it has been previously removed", + async () => { + await utils.addToWhitelist(listing26, minDeposit, applicant, registry); + const resultOne = await registry.getListingIsWhitelisted(listing26); + expect(resultOne).to.be.true("Listing should have been whitelisted"); + + await registry.exitListing(listing26, { from: applicant }); + const resultTwo = await registry.getListingIsWhitelisted(listing26); + expect(resultTwo).to.be.false("Listing should not be in the whitelist"); + + await expect(registry.updateStatus(listing26, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Listing should not have been whitelisted", + ); + }, + ); }); }); diff --git a/packages/contracts/test/tcr/registry/userStories.ts b/packages/contracts/test/tcr/registry/userStories.ts index 2858d62d91..a0c354bf73 100644 --- a/packages/contracts/test/tcr/registry/userStories.ts +++ b/packages/contracts/test/tcr/registry/userStories.ts @@ -8,7 +8,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("User stories", () => { const [applicant, challenger, voter] = accounts; const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); @@ -52,8 +52,7 @@ contract("Registry", (accounts) => { await utils.commitVote(voting, pollID, voteOption, tokensArg, salt, voter); const numTokens = await voting.getNumTokens(voter, pollID); - expect(numTokens).to.be.bignumber.equal(tokensArg, - "Should have committed the correct number of tokens"); + expect(numTokens).to.be.bignumber.equal(tokensArg, "Should have committed the correct number of tokens"); // Reveal await utils.advanceEvmTime(utils.paramConfig.commitStageLength + 1); diff --git a/packages/contracts/test/tcr/registry/withdraw.ts b/packages/contracts/test/tcr/registry/withdraw.ts index bf79765e23..6e13c59b01 100644 --- a/packages/contracts/test/tcr/registry/withdraw.ts +++ b/packages/contracts/test/tcr/registry/withdraw.ts @@ -7,7 +7,7 @@ import * as utils from "../../utils/contractutils"; configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: withdraw", () => { const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); const withdrawAmount = minDeposit.div(utils.toBaseTenBigNumber(2)); @@ -26,8 +26,9 @@ contract("Registry", (accounts) => { await utils.addToWhitelist(dontChallengeListing, minDeposit, applicant, registry); const origDeposit = await registry.getListingUnstakedDeposit(dontChallengeListing); - await expect(registry.withdraw(dontChallengeListing, withdrawAmount, { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.withdraw(dontChallengeListing, withdrawAmount, { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); const afterWithdrawDeposit = await registry.getListingUnstakedDeposit(dontChallengeListing); @@ -40,9 +41,10 @@ contract("Registry", (accounts) => { await registry.challenge(listing13, "", { from: challenger }); // Attempt to withdraw; should fail - await expect(registry.withdraw(listing13, withdrawAmount, { from: applicant })) - .to.eventually.be.rejectedWith(REVERTED, - "Applicant should not have been able to withdraw from a challenged, locked listing"); + await expect(registry.withdraw(listing13, withdrawAmount, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Applicant should not have been able to withdraw from a challenged, locked listing", + ); // TODO: check balance // TODO: apply, gets challenged, and then minDeposit lowers during challenge. // still shouldn"t be able to withdraw anything. diff --git a/packages/contracts/test/tcr/registryWithAppeals/apply.ts b/packages/contracts/test/tcr/registryWithAppeals/apply.ts index 5e30ab98fb..24adbcc2d5 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/apply.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/apply.ts @@ -13,7 +13,7 @@ const ContractAddressRegistry = artifacts.require("ContractAddressRegistry"); const NEWSROOM_NAME = "unused newsroom name;"; -contract("Registry With Appeals", (accounts) => { +contract("Registry With Appeals", accounts => { describe("Function: apply", () => { const [JAB, applicant, troll, challenger] = accounts; const listing1 = "0x0000000000000000000000000000000000000001"; @@ -34,7 +34,7 @@ contract("Registry With Appeals", (accounts) => { }); it("should allow contract owner to apply on behalf of contract", async () => { - await registry.apply(testNewsroom.address, utils.paramConfig.minDeposit, "", {from: applicant }); + await registry.apply(testNewsroom.address, utils.paramConfig.minDeposit, "", { from: applicant }); // get the struct in the mapping const applicationExpiry = await registry.getListingApplicationExpiry(newsroomAddress); @@ -50,56 +50,63 @@ contract("Registry With Appeals", (accounts) => { }); it("should not allow a listing to apply which has a pending application", async () => { - await registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant }); - await expect(registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }); + await expect( + registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it( - "should add a listing to the whitelist which went unchallenged in its application period", - async () => { - await registry.apply(newsroomAddress, minDeposit, "", {from: applicant }); - await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); - await registry.updateStatus(newsroomAddress); - const result = await registry.getListingIsWhitelisted(newsroomAddress); - expect(result).to.be.true("listing didn't get whitelisted"); - }, - ); + it("should add a listing to the whitelist which went unchallenged in its application period", async () => { + await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); + await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); + await registry.updateStatus(newsroomAddress); + const result = await registry.getListingIsWhitelisted(newsroomAddress); + expect(result).to.be.true("listing didn't get whitelisted"); + }); it("should not allow a listing to apply which is already listed", async () => { await utils.addToWhitelist(newsroomAddress, minDeposit, applicant, registry); - await expect(registry.apply(newsroomAddress, minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(newsroomAddress, minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it("should not allow a listing to re-apply after losing challenge, " + - "not being granted appeal, not updating status", async () => { - await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); - await registry.challenge(newsroomAddress, "", { from: challenger }); - await utils.advanceEvmTime(utils.paramConfig.commitStageLength + utils.paramConfig.revealStageLength + 1); - await registry.updateStatus(newsroomAddress); - await registry.requestAppeal(newsroomAddress, { from: applicant }); - await utils.advanceEvmTime(1209620); // hack. should be getting value from registry contract - - const applyTx = registry.apply(newsroomAddress, minDeposit, "", { from: applicant}); - await expect(applyTx).to.eventually.be.rejectedWith(REVERTED, - "should not have allowed new application after being denied appeal and not updating status"); - }); + it( + "should not allow a listing to re-apply after losing challenge, " + + "not being granted appeal, not updating status", + async () => { + await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); + await registry.challenge(newsroomAddress, "", { from: challenger }); + await utils.advanceEvmTime(utils.paramConfig.commitStageLength + utils.paramConfig.revealStageLength + 1); + await registry.updateStatus(newsroomAddress); + await registry.requestAppeal(newsroomAddress, { from: applicant }); + await utils.advanceEvmTime(1209620); // hack. should be getting value from registry contract + + const applyTx = registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); + await expect(applyTx).to.eventually.be.rejectedWith( + REVERTED, + "should not have allowed new application after being denied appeal and not updating status", + ); + }, + ); - it("should allow a listing to re-apply after losing challenge, " + - "not being granted appeal, updating status", async () => { - await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); - await registry.challenge(newsroomAddress, "", { from: challenger }); - await utils.advanceEvmTime(utils.paramConfig.commitStageLength); - await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await registry.updateStatus(newsroomAddress); - await registry.requestAppeal(newsroomAddress, { from: applicant }); - await utils.advanceEvmTime(1209620); // hack. should be getting value from registry contract - await registry.updateStatus(newsroomAddress); + it( + "should allow a listing to re-apply after losing challenge, " + "not being granted appeal, updating status", + async () => { + await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); + await registry.challenge(newsroomAddress, "", { from: challenger }); + await utils.advanceEvmTime(utils.paramConfig.commitStageLength); + await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); + await registry.updateStatus(newsroomAddress); + await registry.requestAppeal(newsroomAddress, { from: applicant }); + await utils.advanceEvmTime(1209620); // hack. should be getting value from registry contract + await registry.updateStatus(newsroomAddress); - await expect(registry.apply(newsroomAddress, minDeposit, "", { from: applicant})).to.eventually.be.fulfilled( - "should have allowed new application after being denied appeal"); - }); + await expect(registry.apply(newsroomAddress, minDeposit, "", { from: applicant })).to.eventually.be.fulfilled( + "should have allowed new application after being denied appeal", + ); + }, + ); }); describe("with troll newsroom", () => { @@ -112,29 +119,31 @@ contract("Registry With Appeals", (accounts) => { }); it("should not allow a non-contract owner to apply", async () => { - await expect(registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(newsroomAddress, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it( - "should prevent un-owned address from being listed when registry cast to ContractAddressRegistry", - async () => { + it("should prevent un-owned address from being listed when registry cast to ContractAddressRegistry", async () => { const parentRegistry = await ContractAddressRegistry.at(registry.address); - await expect(parentRegistry.apply(newsroomAddress, minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + parentRegistry.apply(newsroomAddress, minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); }); it("should prevent non-contract address from being listed", async () => { - await expect(registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); it("should prevent non-contract address from being listed when registry cast to AddressRegistry", async () => { const parentRegistry = await AddressRegistry.at(registry.address); - await expect(parentRegistry.apply(listing1, minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect(parentRegistry.apply(listing1, minDeposit, "", { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + ); }); }); }); diff --git a/packages/contracts/test/tcr/registryWithAppeals/claimReward.ts b/packages/contracts/test/tcr/registryWithAppeals/claimReward.ts index 8d28eca4b6..701d592b32 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/claimReward.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/claimReward.ts @@ -13,7 +13,7 @@ const NEWSROOM_NAME = "unused newsroom name"; configureChai(chai); const expect = chai.expect; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: claimReward", () => { const [JAB, applicant, challenger, voterAlice, voterBob] = accounts; const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); @@ -68,7 +68,8 @@ contract("Registry", (accounts) => { const aliceExpected = aliceStartingBalance.add(aliceVoterReward); const aliceFinalBalance = await token.balanceOf(voterAlice); - expect(aliceFinalBalance).to.be.bignumber.equal(aliceExpected, + expect(aliceFinalBalance).to.be.bignumber.equal( + aliceExpected, "alice should have the same balance as she started", ); }); @@ -77,8 +78,9 @@ contract("Registry", (accounts) => { await utils.addToWhitelist(newsroomAddress, minDeposit, applicant, registry); const nonPollID = "666"; - await expect(registry.claimReward(nonPollID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED); + await expect(registry.claimReward(nonPollID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + ); }); it("should revert if provided salt is incorrect", async () => { @@ -100,18 +102,19 @@ contract("Registry", (accounts) => { const aliceFinalBalance = await token.balanceOf(voterAlice); const expectedBalance = applicantStartingBalance.sub(minDeposit); - expect(applicantFinalBalance).to.be.bignumber.equal(expectedBalance, + expect(applicantFinalBalance).to.be.bignumber.equal( + expectedBalance, "applicants final balance should be what they started with minus the minDeposit", ); - expect(aliceFinalBalance).to.be.bignumber.equal(aliceStartBal.sub(utils.toBaseTenBigNumber(500)), + expect(aliceFinalBalance).to.be.bignumber.equal( + aliceStartBal.sub(utils.toBaseTenBigNumber(500)), "alices final balance should be exactly the same as her starting balance", ); // Update status await registry.updateStatus(newsroomAddress, { from: applicant }); - await expect(registry.claimReward(pollID, "421", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED); + await expect(registry.claimReward(pollID, "421", { from: voterAlice })).to.eventually.be.rejectedWith(REVERTED); }); it("should not transfer tokens if msg.sender has already claimed tokens for a challenge", async () => { @@ -141,22 +144,21 @@ contract("Registry", (accounts) => { // Claim reward await registry.claimReward(pollID, "420", { from: voterAlice }); - await expect(registry.claimReward(pollID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED, "should not have been able to call claimReward twice"); + await expect(registry.claimReward(pollID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + "should not have been able to call claimReward twice", + ); const applicantEndingBalance = await token.balanceOf(applicant); const appExpected = applicantStartingBalance.sub(minDeposit); const aliceEndingBalance = await token.balanceOf(voterAlice); - const aliceExpected = aliceStartingBalance.add(minDeposit.div(utils.toBaseTenBigNumber(2))) - .sub(utils.toBaseTenBigNumber(500)); + const aliceExpected = aliceStartingBalance + .add(minDeposit.div(utils.toBaseTenBigNumber(2))) + .sub(utils.toBaseTenBigNumber(500)); - expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, - "applicants ending balance is incorrect", - ); - expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, - "alices ending balance is incorrect", - ); + expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, "applicants ending balance is incorrect"); + expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, "alices ending balance is incorrect"); }); it("should not transfer tokens for an unresolved challenge", async () => { @@ -176,8 +178,10 @@ contract("Registry", (accounts) => { await voting.revealVote(pollID, "0", "420", { from: voterAlice }); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await expect(registry.claimReward(pollID, "420", { from: voterAlice })) - .to.eventually.be.rejectedWith(REVERTED, "should not have been able to claimReward for unresolved challenge"); + await expect(registry.claimReward(pollID, "420", { from: voterAlice })).to.eventually.be.rejectedWith( + REVERTED, + "should not have been able to claimReward for unresolved challenge", + ); const applicantEndingBalance = await token.balanceOf.call(applicant); const appExpected = applicantStartingBalance.sub(minDeposit); @@ -185,12 +189,8 @@ contract("Registry", (accounts) => { const aliceEndingBalance = await token.balanceOf.call(voterAlice); const aliceExpected = aliceStartingBalance.sub(utils.toBaseTenBigNumber(500)); - expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, - "applicants ending balance is incorrect", - ); - expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, - "alices ending balance is incorrect", - ); + expect(applicantEndingBalance).to.be.bignumber.equal(appExpected, "applicants ending balance is incorrect"); + expect(aliceEndingBalance).to.be.bignumber.equal(aliceExpected, "alices ending balance is incorrect"); }); it("should not transfer tokens to majority voters if challenge is overturned on appeal", async () => { @@ -215,8 +215,10 @@ contract("Registry", (accounts) => { await registry.updateStatus(newsroomAddress); // Claim reward - await expect(registry.claimReward(pollID, "42", { from: voterAlice })).to.be.rejectedWith(REVERTED, - "should have reverted since voter commit hash does not match winning hash for salt"); + await expect(registry.claimReward(pollID, "42", { from: voterAlice })).to.be.rejectedWith( + REVERTED, + "should have reverted since voter commit hash does not match winning hash for salt", + ); }); // TODO(nickreynolds) @@ -249,18 +251,25 @@ contract("Registry", (accounts) => { // Claim reward await expect(registry.claimReward(pollID, "32", { from: voterBob })).to.be.fulfilled( - "should have allowed minority voter to claim reward"); + "should have allowed minority voter to claim reward", + ); await voting.withdrawVotingRights("30", { from: voterBob }); // get all tokens back const bobEndingBalance = await token.balanceOf(voterBob); // starting balance + (minDeposit * dispensationPct) - const expectedBobEndingBalance = utils.toBaseTenBigNumber(bobStartingBalance).add( - utils.toBaseTenBigNumber(utils.paramConfig.minDeposit).mul( - utils.toBaseTenBigNumber(utils.paramConfig.dispensationPct).div(100))); - - expect(bobEndingBalance).to.be.bignumber.equal(expectedBobEndingBalance, - "Bob's ending balance did not equal expected value"); + const expectedBobEndingBalance = utils + .toBaseTenBigNumber(bobStartingBalance) + .add( + utils + .toBaseTenBigNumber(utils.paramConfig.minDeposit) + .mul(utils.toBaseTenBigNumber(utils.paramConfig.dispensationPct).div(100)), + ); + + expect(bobEndingBalance).to.be.bignumber.equal( + expectedBobEndingBalance, + "Bob's ending balance did not equal expected value", + ); }); }); }); diff --git a/packages/contracts/test/tcr/registryWithAppeals/grantAppeal.ts b/packages/contracts/test/tcr/registryWithAppeals/grantAppeal.ts index d71b0aab85..e727fbbb19 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/grantAppeal.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/grantAppeal.ts @@ -12,7 +12,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); const NEWSROOM_NAME = "unused newsroom name"; -contract("Registry With Appeals", (accounts) => { +contract("Registry With Appeals", accounts => { describe("Function: grantAppeal", () => { const [JAB, applicant, challenger, voter] = accounts; @@ -37,30 +37,40 @@ contract("Registry With Appeals", (accounts) => { }); it("should fail if no application has been made", async () => { - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed grant appeal on non-existent application"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed grant appeal on non-existent application", + ); }); it("should fail if application is in progress", async () => { await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed grant appeal on application in progress"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed grant appeal on application in progress", + ); }); it("should fail if challenge is in progress", async () => { await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); await registry.challenge(newsroomAddress, "", { from: challenger }); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed grant appeal on application with challenge in progress"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed grant appeal on application with challenge in progress", + ); await utils.advanceEvmTime(utils.paramConfig.commitStageLength); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed grant appeal on application with challenge in progress"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed grant appeal on application with challenge in progress", + ); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed grant appeal on application with challenge not yet resolved"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed grant appeal on application with challenge not yet resolved", + ); }); it("should fail if challenge is lost and status is updated, but appeal not requested", async () => { @@ -69,8 +79,10 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.commitStageLength); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed appeal on application with failed challenge that has been processed"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed appeal on application with failed challenge that has been processed", + ); }); it("should fail if challenge is lost, status is updated, and request phase has ended", async () => { @@ -80,8 +92,10 @@ contract("Registry With Appeals", (accounts) => { await registry.updateStatus(newsroomAddress); // hack. can't read directly from contract for some reason, was causing crash await utils.advanceEvmTime(259250); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed grant appeal on application with failed challenge that has been processed"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed grant appeal on application with failed challenge that has been processed", + ); }); it("should fail if challenge is won by applicant", async () => { @@ -92,8 +106,10 @@ contract("Registry With Appeals", (accounts) => { await voting.revealVote(pollID, 1, 420, { from: voter }); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); - await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith(REVERTED, - "Should not allow grant appeal if challenge is won by applicant"); + await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not allow grant appeal if challenge is won by applicant", + ); }); it("should succeed if challenge is lost and status is updated, and appeal requested", async () => { @@ -104,7 +120,8 @@ contract("Registry With Appeals", (accounts) => { await registry.updateStatus(newsroomAddress); await registry.requestAppeal(newsroomAddress, { from: applicant }); await expect(registry.grantAppeal(newsroomAddress, { from: JAB })).to.eventually.be.fulfilled( - "Should not have allowed appeal on application with failed challenge that has been processed"); + "Should not have allowed appeal on application with failed challenge that has been processed", + ); }); }); }); diff --git a/packages/contracts/test/tcr/registryWithAppeals/isWhitelisted.ts b/packages/contracts/test/tcr/registryWithAppeals/isWhitelisted.ts index 3a57209443..fbeca5cdba 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/isWhitelisted.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/isWhitelisted.ts @@ -10,7 +10,7 @@ const Newsroom = artifacts.require("Newsroom"); const NEWSROOM_NAME = "unused newsroom name"; -contract("Registry With Appeals", (accounts) => { +contract("Registry With Appeals", accounts => { describe("Function: isWhitelisted", () => { const [JAB, applicant] = accounts; let registry: any; diff --git a/packages/contracts/test/tcr/registryWithAppeals/requestAppeal.ts b/packages/contracts/test/tcr/registryWithAppeals/requestAppeal.ts index 11f6b4c7fe..776cd6547b 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/requestAppeal.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/requestAppeal.ts @@ -12,7 +12,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); const NEWSROOM_NAME = "unused newsroom name"; -contract("Registry With Appeals", (accounts) => { +contract("Registry With Appeals", accounts => { describe("Function: requestAppeal", () => { const [JAB, applicant, challenger, voter] = accounts; let registry: any; @@ -31,31 +31,40 @@ contract("Registry With Appeals", (accounts) => { }); it("should fail if no application has been made", async () => { - - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed appeal on non-existent application"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed appeal on non-existent application", + ); }); it("should fail if application is in progress", async () => { await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed appeal on application in progress"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed appeal on application in progress", + ); }); it("should fail if challenge is in progress", async () => { await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); await registry.challenge(newsroomAddress, "", { from: challenger }); - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed appeal on application with challenge in progress"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed appeal on application with challenge in progress", + ); await utils.advanceEvmTime(utils.paramConfig.commitStageLength); - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed appeal on application with challenge in progress"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed appeal on application with challenge in progress", + ); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed appeal on application with challenge not yet resolved"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed appeal on application with challenge not yet resolved", + ); }); it("should succeed if challenge is lost and status is updated", async () => { @@ -65,7 +74,8 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.fulfilled( - "Should have allowed appeal on application with failed challenge that has been processed"); + "Should have allowed appeal on application with failed challenge that has been processed", + ); }); it("should fail if challenge is lost, status is updated, but request phase has ended", async () => { @@ -74,8 +84,10 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.commitStageLength + utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); await utils.advanceEvmTime(259250); // hack. can't read directly from contract for some reason, was causing crash - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should have allowed appeal on application with failed challenge that has been processed"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should have allowed appeal on application with failed challenge that has been processed", + ); }); it("should fail if challenge is won by applicant", async () => { @@ -86,8 +98,10 @@ contract("Registry With Appeals", (accounts) => { await voting.revealVote(pollID, 1, 420, { from: voter }); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); - await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith(REVERTED, - "Should not allow appeal if challenge is won by applicant"); + await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.rejectedWith( + REVERTED, + "Should not allow appeal if challenge is won by applicant", + ); }); it("should allow a listing to request appeal after going through process before and being denied", async () => { @@ -102,13 +116,14 @@ contract("Registry With Appeals", (accounts) => { await registry.updateStatus(newsroomAddress); // 2nd time around - await registry.apply(newsroomAddress, minDeposit, "", { from: applicant}); + await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); await registry.challenge(newsroomAddress, "", { from: challenger }); await utils.advanceEvmTime(utils.paramConfig.commitStageLength); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.fulfilled( - "should have allowed appeal 2nd time around"); + "should have allowed appeal 2nd time around", + ); }); it("should allow a listing to request appeal the 2nd time around but not requesting one the 1st time", async () => { @@ -122,13 +137,14 @@ contract("Registry With Appeals", (accounts) => { await registry.updateStatus(newsroomAddress); // 2nd time around - await registry.apply(newsroomAddress, minDeposit, "", { from: applicant}); + await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); await registry.challenge(newsroomAddress, "", { from: challenger }); await utils.advanceEvmTime(utils.paramConfig.commitStageLength); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); await expect(registry.requestAppeal(newsroomAddress, { from: applicant })).to.eventually.be.fulfilled( - "should have allowed appeal 2nd time around"); + "should have allowed appeal 2nd time around", + ); }); }); }); diff --git a/packages/contracts/test/tcr/registryWithAppeals/updateStatus.ts b/packages/contracts/test/tcr/registryWithAppeals/updateStatus.ts index e01f8d2384..6c4094ddd1 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/updateStatus.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/updateStatus.ts @@ -10,7 +10,7 @@ const Newsroom = artifacts.require("Newsroom"); const NEWSROOM_NAME = "unused newsroom name"; -contract("Registry With Appeals", (accounts) => { +contract("Registry With Appeals", accounts => { describe("Function: updateStatus", () => { const [JAB, applicant, challenger] = accounts; let registry: any; @@ -40,7 +40,8 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.pRevealStageLength + 1); await expect(registry.updateStatus(newsroomAddress)).to.eventually.be.fulfilled( - "Listing should not have been updated post challenge"); + "Listing should not have been updated post challenge", + ); const result = await registry.getListingIsWhitelisted(newsroomAddress); expect(result).to.be.false("Listing should have been whitelisted"); @@ -60,7 +61,8 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.pRevealStageLength + 1); await expect(registry.updateStatus(newsroomAddress)).to.eventually.be.fulfilled( - "Listing should not have been updated post challenge"); + "Listing should not have been updated post challenge", + ); const result = await registry.getListingIsWhitelisted(newsroomAddress); expect(result).to.be.false("Listing should not have been whitelisted"); @@ -68,6 +70,5 @@ contract("Registry With Appeals", (accounts) => { const appealPhase3 = await registry.getRequestAppealPhaseExpiry(newsroomAddress); expect(appealPhase3).to.be.bignumber.greaterThan(0, "Appeal phase not initialized."); }); - }); }); diff --git a/packages/contracts/test/tcr/registryWithAppeals/voterReward.ts b/packages/contracts/test/tcr/registryWithAppeals/voterReward.ts index 727df2be9c..7005f04b0c 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/voterReward.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/voterReward.ts @@ -12,7 +12,7 @@ const expect = chai.expect; const NEWSROOM_NAME = "unused newsroom name"; -contract("Registry", (accounts) => { +contract("Registry", accounts => { describe("Function: voterReward", () => { const [JAB, applicant, challenger, voterAlice, voterBob] = accounts; const minDeposit = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit); @@ -51,40 +51,46 @@ contract("Registry", (accounts) => { await registry.updateStatus(newsroomAddress); - await expect(registry.voterReward(voterAlice, pollID, "42")).to.be.rejectedWith(REVERTED, - "should have reverted since voter commit hash does not match winning hash for salt"); + await expect(registry.voterReward(voterAlice, pollID, "42")).to.be.rejectedWith( + REVERTED, + "should have reverted since voter commit hash does not match winning hash for salt", + ); }); - it("should return all tokens not reserved for applicant to the only " + - "minority voter if there is only 1 and challenge is overturned on appeal", async () => { - await utils.addToWhitelist(newsroomAddress, minDeposit, applicant, registry); + it( + "should return all tokens not reserved for applicant to the only " + + "minority voter if there is only 1 and challenge is overturned on appeal", + async () => { + await utils.addToWhitelist(newsroomAddress, minDeposit, applicant, registry); - // Challenge - const pollID = await utils.challengeAndGetPollID(newsroomAddress, challenger, registry); + // Challenge + const pollID = await utils.challengeAndGetPollID(newsroomAddress, challenger, registry); - await utils.commitVote(voting, pollID, "0", "50", "42", voterAlice); - await utils.commitVote(voting, pollID, "1", "30", "32", voterBob); - await utils.advanceEvmTime(utils.paramConfig.commitStageLength + 1); + await utils.commitVote(voting, pollID, "0", "50", "42", voterAlice); + await utils.commitVote(voting, pollID, "1", "30", "32", voterBob); + await utils.advanceEvmTime(utils.paramConfig.commitStageLength + 1); - await voting.revealVote(pollID, "0", "42 ", { from: voterAlice }); - await voting.revealVote(pollID, "1", "32 ", { from: voterBob }); - await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); + await voting.revealVote(pollID, "0", "42 ", { from: voterAlice }); + await voting.revealVote(pollID, "1", "32 ", { from: voterBob }); + await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await registry.updateStatus(newsroomAddress, { from: applicant }); + await registry.updateStatus(newsroomAddress, { from: applicant }); - await registry.requestAppeal(newsroomAddress, { from: applicant }); - await registry.grantAppeal(newsroomAddress, { from: JAB }); - const waitTime = Number(await registry.judgeAppealPhaseLength()); - await utils.advanceEvmTime(waitTime + 1); + await registry.requestAppeal(newsroomAddress, { from: applicant }); + await registry.grantAppeal(newsroomAddress, { from: JAB }); + const waitTime = Number(await registry.judgeAppealPhaseLength()); + await utils.advanceEvmTime(waitTime + 1); - await registry.updateStatus(newsroomAddress); + await registry.updateStatus(newsroomAddress); - // Claim reward - const bobReward = await registry.voterReward(voterBob, pollID, "32"); - const expectedBobReward = utils.toBaseTenBigNumber(utils.paramConfig.minDeposit).mul( - utils.toBaseTenBigNumber(utils.paramConfig.dispensationPct).div(100)); + // Claim reward + const bobReward = await registry.voterReward(voterBob, pollID, "32"); + const expectedBobReward = utils + .toBaseTenBigNumber(utils.paramConfig.minDeposit) + .mul(utils.toBaseTenBigNumber(utils.paramConfig.dispensationPct).div(100)); - expect(bobReward).to.be.bignumber.equal(expectedBobReward, "voterReward did not match expected reward"); - }); + expect(bobReward).to.be.bignumber.equal(expectedBobReward, "voterReward did not match expected reward"); + }, + ); }); }); diff --git a/packages/contracts/test/tcr/registryWithAppeals/whitelistAddress.ts b/packages/contracts/test/tcr/registryWithAppeals/whitelistAddress.ts index 94fd8c5c07..ec7e1a10dc 100644 --- a/packages/contracts/test/tcr/registryWithAppeals/whitelistAddress.ts +++ b/packages/contracts/test/tcr/registryWithAppeals/whitelistAddress.ts @@ -12,7 +12,7 @@ const PLCRVoting = artifacts.require("PLCRVoting"); const NEWSROOM_ADDRESS = "unused newsroom address"; -contract("Registry With Appeals", (accounts) => { +contract("Registry With Appeals", accounts => { describe("Function: whitelistAddress", () => { const [JAB, applicant, challenger, voter] = accounts; let registry: any; @@ -31,9 +31,9 @@ contract("Registry With Appeals", (accounts) => { }); it("should succeed if no application has already been made", async () => { - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.fulfilled( - "Should have allowed JEC to whitelist address for existing application"); + "Should have allowed JEC to whitelist address for existing application", + ); }); it("should succeed if challenge is lost, request phase has ended and been processed", async () => { @@ -45,32 +45,37 @@ contract("Registry With Appeals", (accounts) => { await registry.updateStatus(newsroomAddress); await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.fulfilled( - "Should not have allowed JEC to whitelist application with failed challenge that has been processed"); + "Should not have allowed JEC to whitelist application with failed challenge that has been processed", + ); }); it("should fail if application has already been made", async () => { await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist address for existing application"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist address for existing application", + ); }); it("should fail if challenge is in progress", async () => { await registry.apply(newsroomAddress, minDeposit, "", { from: applicant }); await registry.challenge(newsroomAddress, "", { from: challenger }); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist on application with challenge in progress"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist on application with challenge in progress", + ); await utils.advanceEvmTime(utils.paramConfig.commitStageLength); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist on application with challenge in progress"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist on application with challenge in progress", + ); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist on application with challenge not yet resolved"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist on application with challenge not yet resolved", + ); }); it("should fail if challenge is lost and status is updated, but appeal not requested", async () => { @@ -79,9 +84,10 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.commitStageLength); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist application with failed challenge that has been processed"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist application with failed challenge that has been processed", + ); }); it("should fail if challenge is lost, status is updated, and request phase has ended", async () => { @@ -90,9 +96,10 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.commitStageLength + utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); await utils.advanceEvmTime(259250); // hack. can't read directly from contract for some reason, was causing crash - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist application with failed challenge that has been processed"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist application with failed challenge that has been processed", + ); }); it("should fail if challenge is won by applicant", async () => { @@ -103,9 +110,10 @@ contract("Registry With Appeals", (accounts) => { await voting.revealVote(pollID, 1, 420, { from: voter }); await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not allow JEC to whitelist if challenge is won by applicant"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not allow JEC to whitelist if challenge is won by applicant", + ); }); it("should fail if challenge is lost and status is updated, and appeal requested", async () => { @@ -115,9 +123,10 @@ contract("Registry With Appeals", (accounts) => { await utils.advanceEvmTime(utils.paramConfig.revealStageLength + 1); await registry.updateStatus(newsroomAddress); await registry.requestAppeal(newsroomAddress, { from: applicant }); - await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })) - .to.eventually.be.rejectedWith(REVERTED, - "Should not have allowed JEC to whitelist application with failed challenge that has been processed"); + await expect(registry.whitelistAddress(newsroomAddress, minDeposit, { from: JAB })).to.eventually.be.rejectedWith( + REVERTED, + "Should not have allowed JEC to whitelist application with failed challenge that has been processed", + ); }); }); }); diff --git a/packages/contracts/test/tcr/restrictedRegistry/apply.ts b/packages/contracts/test/tcr/restrictedRegistry/apply.ts index 156d7245ef..b7d98b260d 100644 --- a/packages/contracts/test/tcr/restrictedRegistry/apply.ts +++ b/packages/contracts/test/tcr/restrictedRegistry/apply.ts @@ -13,7 +13,7 @@ const ContractAddressRegistry = artifacts.require("ContractAddressRegistry"); const NEWSROOM_NAME = "unused newsroom name"; -contract("RestrictedAddressRegistry", (accounts) => { +contract("RestrictedAddressRegistry", accounts => { describe("Function: apply", () => { const [applicant, troll] = accounts; const listing1 = "0x0000000000000000000000000000000000000001"; @@ -33,7 +33,7 @@ contract("RestrictedAddressRegistry", (accounts) => { }); it("should allow contract owner to apply on behalf of contract", async () => { - await registry.apply(testNewsroom.address, utils.paramConfig.minDeposit, "", {from: applicant }); + await registry.apply(testNewsroom.address, utils.paramConfig.minDeposit, "", { from: applicant }); // get the struct in the mapping const applicationExpiry = await registry.getListingApplicationExpiry(address); @@ -49,26 +49,25 @@ contract("RestrictedAddressRegistry", (accounts) => { }); it("should not allow a listing to apply which has a pending application", async () => { - await registry.apply(address, utils.paramConfig.minDeposit, "", {from: applicant }); - await expect(registry.apply(address, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await registry.apply(address, utils.paramConfig.minDeposit, "", { from: applicant }); + await expect( + registry.apply(address, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it( - "should add a listing to the whitelist which went unchallenged in its application period", - async () => { - await registry.apply(address, utils.paramConfig.minDeposit, "", {from: applicant }); - await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); - await registry.updateStatus(address); - const result = await registry.getListingIsWhitelisted(address); - expect(result).to.be.true("listing didn't get whitelisted"); - }, - ); + it("should add a listing to the whitelist which went unchallenged in its application period", async () => { + await registry.apply(address, utils.paramConfig.minDeposit, "", { from: applicant }); + await utils.advanceEvmTime(utils.paramConfig.applyStageLength + 1); + await registry.updateStatus(address); + const result = await registry.getListingIsWhitelisted(address); + expect(result).to.be.true("listing didn't get whitelisted"); + }); it("should not allow a listing to apply which is already listed", async () => { await utils.addToWhitelist(address, utils.paramConfig.minDeposit, applicant, registry); - await expect(registry.apply(address, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(address, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); }); @@ -82,29 +81,30 @@ contract("RestrictedAddressRegistry", (accounts) => { }); it("should not allow a non-contract owner to apply", async () => { - await expect(registry.apply(address, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(address, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - it( - "should prevent un-owned address from being listed when registry cast to ContractAddressRegistry", - async () => { + it("should prevent un-owned address from being listed when registry cast to ContractAddressRegistry", async () => { const parentRegistry = await ContractAddressRegistry.at(registry.address); - await expect(parentRegistry.apply(address, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + parentRegistry.apply(address, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); }); it("should prevent non-contract address from being listed", async () => { - await expect(registry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + registry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); it("should prevent non-contract address from being listed when registry cast to AddressRegistry", async () => { const parentRegistry = await AddressRegistry.at(registry.address); - await expect(parentRegistry.apply(listing1, utils.paramConfig.minDeposit, "", {from: applicant })) - .to.eventually.be.rejectedWith(REVERTED); + await expect( + parentRegistry.apply(listing1, utils.paramConfig.minDeposit, "", { from: applicant }), + ).to.eventually.be.rejectedWith(REVERTED); }); - }); }); diff --git a/packages/contracts/test/utils/contractutils.ts b/packages/contracts/test/utils/contractutils.ts index d441cd6492..262b16d42c 100644 --- a/packages/contracts/test/utils/contractutils.ts +++ b/packages/contracts/test/utils/contractutils.ts @@ -24,7 +24,7 @@ const OwnedAddressTCRWithAppeals = artifacts.require("OwnedAddressTCRWithAppeals const config = JSON.parse(fs.readFileSync("./conf/config.json").toString()); export const paramConfig = config.paramDefaults; -export function findEvent(tx: any, eventName: string): Web3.DecodedLogEntry|undefined { +export function findEvent(tx: any, eventName: string): Web3.DecodedLogEntry | undefined { return tx.logs.find((log: any) => log.event === eventName); } @@ -59,19 +59,11 @@ export async function proposeReparamAndGetPropID( parameterizer: any, account: string, ): Promise { - const receipt = await parameterizer.proposeReparameterization( - propName, - propValue, - { from: account }, - ); + const receipt = await parameterizer.proposeReparameterization(propName, propValue, { from: account }); return receipt.logs[0].args.propID; } -export async function challengeAndGetPollID( - listing: string, - account: string, - registry: any, -): Promise { +export async function challengeAndGetPollID(listing: string, account: string, registry: any): Promise { const receipt = await registry.challenge(listing, "", { from: account }); return receipt.logs[0].args.pollID; } @@ -100,14 +92,14 @@ export function toBaseTenBigNumber(p: number): BigNumber { return new BigNumber(p.toString(10), 10); } -export async function commitVote( voting: any, - pollID: any, - voteOption: string, - tokensArg: string, - salt: string, - voter: string, - ): Promise { - +export async function commitVote( + voting: any, + pollID: any, + voteOption: string, + tokensArg: string, + salt: string, + voter: string, +): Promise { const hash = getVoteSaltHash(voteOption, salt); await voting.requestVotingRights(tokensArg, { from: voter }); @@ -130,38 +122,36 @@ export function multiplyByPercentage(x: number, y: number, z: number = 100): Big return multiplyFromWei(x, weiQuotient); } -async function giveTokensTo(totalSupply: BigNumber, - addresses: string[], - accounts: string[], - token: any, - ): Promise { +async function giveTokensTo( + totalSupply: BigNumber, + addresses: string[], + accounts: string[], + token: any, +): Promise { const user = addresses[0]; const allocation = totalSupply.div(new BigNumber(accounts.length, 10)); await token.transfer(user, allocation); - if (addresses.length === 1) { return true; } + if (addresses.length === 1) { + return true; + } return giveTokensTo(totalSupply, addresses.slice(1), accounts, token); } -async function createAndDistributeToken(totalSupply: BigNumber, - decimals: string, - addresses: string[], - ): Promise { +async function createAndDistributeToken(totalSupply: BigNumber, decimals: string, addresses: string[]): Promise { const token = await Token.new(totalSupply, "TestCoin", decimals, "TEST"); await giveTokensTo(totalSupply, addresses, addresses, token); return token; } -async function createTestRegistryInstance( - registryContract: any, - parameterizer: any, - accounts: string[], -): Promise { +async function createTestRegistryInstance(registryContract: any, parameterizer: any, accounts: string[]): Promise { async function approveRegistryFor(addresses: string[]): Promise { const user = addresses[0]; const balanceOfUser = await token.balanceOf(user); await token.approve(registry.address, balanceOfUser, { from: user }); - if (addresses.length === 1) { return true; } + if (addresses.length === 1) { + return true; + } return approveRegistryFor(addresses.slice(1)); } @@ -185,7 +175,9 @@ async function createTestAppealsRegistryInstance( const user = addresses[0]; const balanceOfUser = await token.balanceOf(user); await token.approve(registry.address, balanceOfUser, { from: user }); - if (addresses.length === 1) { return true; } + if (addresses.length === 1) { + return true; + } return approveRegistryFor(addresses.slice(1)); } @@ -216,7 +208,9 @@ async function createTestPLCRInstance(token: any, accounts: string[]): Promise console.log("\tProposed article, uri: " + header.uri)) - .flatMap(async (header) => newsroom.resolveContent(header)) - .subscribe((article) => { + .do(header => console.log("\tProposed article, uri: " + header.uri)) + .flatMap(async header => newsroom.resolveContent(header)) + .subscribe(article => { console.log("\tContent for article id: " + article.id, article.content); console.log("\tUnsubscribing"); articleSubscription.unsubscribe(); }); console.log("Subscribing to latest name changes"); - const nameSubscription = newsroom - .nameChanges("latest") - .subscribe((name) => { - console.log("\tThe name of the Newsroom changed to", name); - }); + const nameSubscription = newsroom.nameChanges("latest").subscribe(name => { + console.log("\tThe name of the Newsroom changed to", name); + }); console.log("Am I the owner:", await newsroom.isOwner()); @@ -39,14 +37,13 @@ import { Civil } from "../../src"; console.log("Changing names"); await Promise.all( - ["Second name", "Third name", "Last name"].map(async (name) => { + ["Second name", "Third name", "Last name"].map(async name => { console.log("Changing name to:", name); await (await newsroom.setName(name)).awaitReceipt(); }), ); nameSubscription.unsubscribe(); -})() -.catch((err) => { +})().catch(err => { console.error(err); process.exit(1); }); diff --git a/packages/core/doc/examples/low-level/multisig.ts b/packages/core/doc/examples/low-level/multisig.ts index 1a80b40044..8493c8c32b 100644 --- a/packages/core/doc/examples/low-level/multisig.ts +++ b/packages/core/doc/examples/low-level/multisig.ts @@ -13,9 +13,11 @@ const account = web3.account!; (async () => { console.log("Deploying multisig"); - const deployTxHash = await MultiSigWalletContract - .deployTrusted - .sendTransactionAsync(web3, [account], new BigNumber(1)); + const deployTxHash = await MultiSigWalletContract.deployTrusted.sendTransactionAsync( + web3, + [account], + new BigNumber(1), + ); const deployReceipt = await web3.awaitReceipt(deployTxHash); const multisig = Multisig.atUntrusted(web3, deployReceipt.contractAddress!); @@ -46,8 +48,7 @@ const account = web3.account!; if (transaction.information.executed) { throw new Error("Ouch, transaction was executed after all"); } -})() -.catch((err) => { +})().catch(err => { console.error(err); process.exit(1); }); diff --git a/packages/core/doc/examples/low-level/typed_contracts.ts b/packages/core/doc/examples/low-level/typed_contracts.ts index 153513deb5..ca44557bf5 100644 --- a/packages/core/doc/examples/low-level/typed_contracts.ts +++ b/packages/core/doc/examples/low-level/typed_contracts.ts @@ -24,29 +24,28 @@ const data: TxData = { console.log("Am I owner: ", await newsroom.isOwner.callAsync(account)); const subscription = newsroom - .ContentProposedStream() - .distinctUntilChanged((a, b) => { - return a.blockNumber === b.blockNumber && a.logIndex === b.logIndex; - }) // https://github.com/ethereum/web3.js/issues/573 - .subscribe(async (event) => { - console.log("Content proposed"); - console.log("\tAuthor: ", event.args.author); - console.log("\tContent id:", event.args.id.toString()); - console.log( - "\tTimestamp for article id " + event.args.id.toString() + ": ", - (await newsroom.timestamp.callAsync(event.args.id)).toString(), - ); - console.log("\tGot an article, unsubscribing"); - subscription.unsubscribe(); - }); + .ContentProposedStream() + .distinctUntilChanged((a, b) => { + return a.blockNumber === b.blockNumber && a.logIndex === b.logIndex; + }) // https://github.com/ethereum/web3.js/issues/573 + .subscribe(async event => { + console.log("Content proposed"); + console.log("\tAuthor: ", event.args.author); + console.log("\tContent id:", event.args.id.toString()); + console.log( + "\tTimestamp for article id " + event.args.id.toString() + ": ", + (await newsroom.timestamp.callAsync(event.args.id)).toString(), + ); + console.log("\tGot an article, unsubscribing"); + subscription.unsubscribe(); + }); console.log("Proposing content"); const proposeOptions = await newsroom.proposeContent.getRaw("http://someuirhere.com", data); console.log("Propose options:", proposeOptions); const proposeTxHash = await web3.sendTransaction(proposeOptions); await web3.awaitReceipt(proposeTxHash); -})() -.catch((err) => { +})().catch(err => { console.error(err); process.exit(1); }); diff --git a/packages/core/src/artifacts/EIP20.json b/packages/core/src/artifacts/EIP20.json index 38d268a797..00dd39b26c 100644 --- a/packages/core/src/artifacts/EIP20.json +++ b/packages/core/src/artifacts/EIP20.json @@ -1,247 +1,248 @@ { - "contractName": "EIP20", - "bytecode": "0x6060604052341561000f57600080fd5b604051610cc5380380610cc58339810160405280805190602001909190805182019190602001805190602001909190805182019190505083600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008190555082600190805190602001906100a79291906100e3565b5081600260006101000a81548160ff021916908360ff16021790555080600390805190602001906100d99291906100e3565b5050505050610188565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012457805160ff1916838001178555610152565b82800160010185558215610152579182015b82811115610151578251825591602001919060010190610136565b5b50905061015f9190610163565b5090565b61018591905b80821115610181576000816000905550600101610169565b5090565b90565b610b2e806101976000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009e578063095ea7b31461012c57806318160ddd1461018657806323b872dd146101af578063313ce5671461022857806370a082311461025757806395d89b41146102a4578063a9059cbb14610332578063dd62ed3e1461038c575b600080fd5b34156100a957600080fd5b6100b16103f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f15780820151818401526020810190506100d6565b50505050905090810190601f16801561011e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013757600080fd5b61016c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610496565b604051808215151515815260200191505060405180910390f35b341561019157600080fd5b610199610588565b6040518082815260200191505060405180910390f35b34156101ba57600080fd5b61020e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061058e565b604051808215151515815260200191505060405180910390f35b341561023357600080fd5b61023b610828565b604051808260ff1660ff16815260200191505060405180910390f35b341561026257600080fd5b61028e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061083b565b6040518082815260200191505060405180910390f35b34156102af57600080fd5b6102b7610884565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561033d57600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610922565b604051808215151515815260200191505060405180910390f35b341561039757600080fd5b6103e2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7b565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561048e5780601f106104635761010080835404028352916020019161048e565b820191906000526020600020905b81548152906001019060200180831161047157829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561065f5750828110155b151561066a57600080fd5b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107b75782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600260009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561091a5780601f106108ef5761010080835404028352916020019161091a565b820191906000526020600020905b8154815290600101906020018083116108fd57829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561097257600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050929150505600a165627a7a72305820c4dcde77975154e9717820f79555d9fbb184f68a8c5afde9019af33fa7714c350029", - "deployedBytecode": "0x606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009e578063095ea7b31461012c57806318160ddd1461018657806323b872dd146101af578063313ce5671461022857806370a082311461025757806395d89b41146102a4578063a9059cbb14610332578063dd62ed3e1461038c575b600080fd5b34156100a957600080fd5b6100b16103f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f15780820151818401526020810190506100d6565b50505050905090810190601f16801561011e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013757600080fd5b61016c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610496565b604051808215151515815260200191505060405180910390f35b341561019157600080fd5b610199610588565b6040518082815260200191505060405180910390f35b34156101ba57600080fd5b61020e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061058e565b604051808215151515815260200191505060405180910390f35b341561023357600080fd5b61023b610828565b604051808260ff1660ff16815260200191505060405180910390f35b341561026257600080fd5b61028e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061083b565b6040518082815260200191505060405180910390f35b34156102af57600080fd5b6102b7610884565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561033d57600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610922565b604051808215151515815260200191505060405180910390f35b341561039757600080fd5b6103e2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7b565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561048e5780601f106104635761010080835404028352916020019161048e565b820191906000526020600020905b81548152906001019060200180831161047157829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561065f5750828110155b151561066a57600080fd5b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107b75782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600260009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561091a5780601f106108ef5761010080835404028352916020019161091a565b820191906000526020600020905b8154815290600101906020018083116108fd57829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561097257600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050929150505600a165627a7a72305820c4dcde77975154e9717820f79555d9fbb184f68a8c5afde9019af33fa7714c350029", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "contractName": "EIP20", + "bytecode": + "0x6060604052341561000f57600080fd5b604051610cc5380380610cc58339810160405280805190602001909190805182019190602001805190602001909190805182019190505083600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008190555082600190805190602001906100a79291906100e3565b5081600260006101000a81548160ff021916908360ff16021790555080600390805190602001906100d99291906100e3565b5050505050610188565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012457805160ff1916838001178555610152565b82800160010185558215610152579182015b82811115610151578251825591602001919060010190610136565b5b50905061015f9190610163565b5090565b61018591905b80821115610181576000816000905550600101610169565b5090565b90565b610b2e806101976000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009e578063095ea7b31461012c57806318160ddd1461018657806323b872dd146101af578063313ce5671461022857806370a082311461025757806395d89b41146102a4578063a9059cbb14610332578063dd62ed3e1461038c575b600080fd5b34156100a957600080fd5b6100b16103f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f15780820151818401526020810190506100d6565b50505050905090810190601f16801561011e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013757600080fd5b61016c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610496565b604051808215151515815260200191505060405180910390f35b341561019157600080fd5b610199610588565b6040518082815260200191505060405180910390f35b34156101ba57600080fd5b61020e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061058e565b604051808215151515815260200191505060405180910390f35b341561023357600080fd5b61023b610828565b604051808260ff1660ff16815260200191505060405180910390f35b341561026257600080fd5b61028e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061083b565b6040518082815260200191505060405180910390f35b34156102af57600080fd5b6102b7610884565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561033d57600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610922565b604051808215151515815260200191505060405180910390f35b341561039757600080fd5b6103e2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7b565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561048e5780601f106104635761010080835404028352916020019161048e565b820191906000526020600020905b81548152906001019060200180831161047157829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561065f5750828110155b151561066a57600080fd5b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107b75782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600260009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561091a5780601f106108ef5761010080835404028352916020019161091a565b820191906000526020600020905b8154815290600101906020018083116108fd57829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561097257600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050929150505600a165627a7a72305820c4dcde77975154e9717820f79555d9fbb184f68a8c5afde9019af33fa7714c350029", + "deployedBytecode": + "0x606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009e578063095ea7b31461012c57806318160ddd1461018657806323b872dd146101af578063313ce5671461022857806370a082311461025757806395d89b41146102a4578063a9059cbb14610332578063dd62ed3e1461038c575b600080fd5b34156100a957600080fd5b6100b16103f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f15780820151818401526020810190506100d6565b50505050905090810190601f16801561011e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013757600080fd5b61016c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610496565b604051808215151515815260200191505060405180910390f35b341561019157600080fd5b610199610588565b6040518082815260200191505060405180910390f35b34156101ba57600080fd5b61020e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061058e565b604051808215151515815260200191505060405180910390f35b341561023357600080fd5b61023b610828565b604051808260ff1660ff16815260200191505060405180910390f35b341561026257600080fd5b61028e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061083b565b6040518082815260200191505060405180910390f35b34156102af57600080fd5b6102b7610884565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561033d57600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610922565b604051808215151515815260200191505060405180910390f35b341561039757600080fd5b6103e2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7b565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561048e5780601f106104635761010080835404028352916020019161048e565b820191906000526020600020905b81548152906001019060200180831161047157829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561065f5750828110155b151561066a57600080fd5b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107b75782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600260009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561091a5780601f106108ef5761010080835404028352916020019161091a565b820191906000526020600020905b8154815290600101906020018083116108fd57829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561097257600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050929150505600a165627a7a72305820c4dcde77975154e9717820f79555d9fbb184f68a8c5afde9019af33fa7714c350029", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_initialAmount", + "type": "uint256" }, { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_tokenName", + "type": "string" }, { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_decimalUnits", + "type": "uint8" }, { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_tokenSymbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" }, { - "inputs": [ - { - "name": "_initialAmount", - "type": "uint256" - }, - { - "name": "_tokenName", - "type": "string" - }, - { - "name": "_decimalUnits", - "type": "uint8" - }, - { - "name": "_tokenSymbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" + "indexed": true, + "name": "_to", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" + "indexed": true, + "name": "_spender", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_to", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "networks": { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" } + ], + "networks": {} } diff --git a/packages/core/src/artifacts/MultiSigWallet.json b/packages/core/src/artifacts/MultiSigWallet.json index 9636ec00f1..a6da33fb55 100644 --- a/packages/core/src/artifacts/MultiSigWallet.json +++ b/packages/core/src/artifacts/MultiSigWallet.json @@ -1,539 +1,541 @@ { - "contractName": "MultiSigWallet", - "bytecode": "0x606060405234156200001057600080fd5b6040516200238d3803806200238d833981016040528080518201919060200180519060200190919050506000825182603282111515156200005057600080fd5b8181111515156200006057600080fd5b600081141515156200007157600080fd5b600082141515156200008257600080fd5b600092505b8451831015620001bd57600260008685815181101515620000a457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620001335750600085848151811015156200011057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b15156200013f57600080fd5b60016002600087868151811015156200015457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828060010193505062000087565b8460039080519060200190620001d5929190620001e8565b50836004819055505050505050620002bd565b82805482825590600052602060002090810192821562000264579160200282015b82811115620002635782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000209565b5b50905062000273919062000277565b5090565b620002ba91905b80821115620002b657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200027e565b5090565b90565b6120c080620002cd6000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c2714610177578063173825d9146101da57806320ea8d86146102135780632f54bf6e146102365780633411c81c1461028757806354741525146102e15780637065cb4814610325578063784547a71461035e5780638b51d13f146103995780639ace38c2146103d0578063a0e67e2b146104ce578063a8abe69a14610538578063b5dc40c3146105cf578063b77bf60014610647578063ba51a6df14610670578063c01a8c8414610693578063c6427474146106b6578063d74f8edd1461074f578063dc8452cd14610778578063e20056e6146107a1578063ee22610b146107f9575b6000341115610175573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b341561018257600080fd5b610198600480803590602001909190505061081c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e557600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061085b565b005b341561021e57600080fd5b6102346004808035906020019091905050610af7565b005b341561024157600080fd5b61026d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c9f565b604051808215151515815260200191505060405180910390f35b341561029257600080fd5b6102c7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cbf565b604051808215151515815260200191505060405180910390f35b34156102ec57600080fd5b61030f600480803515159060200190919080351515906020019091905050610cee565b6040518082815260200191505060405180910390f35b341561033057600080fd5b61035c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d80565b005b341561036957600080fd5b61037f6004808035906020019091905050610f8b565b604051808215151515815260200191505060405180910390f35b34156103a457600080fd5b6103ba6004808035906020019091905050611071565b6040518082815260200191505060405180910390f35b34156103db57600080fd5b6103f1600480803590602001909190505061113d565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001831515151581526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104bc5780601f10610491576101008083540402835291602001916104bc565b820191906000526020600020905b81548152906001019060200180831161049f57829003601f168201915b50509550505050505060405180910390f35b34156104d957600080fd5b6104e1611199565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610524578082015181840152602081019050610509565b505050509050019250505060405180910390f35b341561054357600080fd5b61057860048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061122d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105bb5780820151818401526020810190506105a0565b505050509050019250505060405180910390f35b34156105da57600080fd5b6105f06004808035906020019091905050611389565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610633578082015181840152602081019050610618565b505050509050019250505060405180910390f35b341561065257600080fd5b61065a6115b3565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b61069160048080359060200190919050506115b9565b005b341561069e57600080fd5b6106b4600480803590602001909190505061167c565b005b34156106c157600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611859565b6040518082815260200191505060405180910390f35b341561075a57600080fd5b610762611878565b6040518082815260200191505060405180910390f35b341561078357600080fd5b61078b61187d565b6040518082815260200191505060405180910390f35b34156107ac57600080fd5b6107f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611883565b005b341561080457600080fd5b61081a6004808035906020019091905050611b9a565b005b60038181548110151561082b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561089757600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108f057600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610a78578273ffffffffffffffffffffffffffffffffffffffff1660038381548110151561098357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a6b5760036001600380549050038154811015156109e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a1d57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a78565b818060010192505061094d565b6001600381818054905003915081610a909190611f6f565b506003805490506004541115610aaf57610aae6003805490506115b9565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a2505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b5057600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610bbb57600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff16151515610beb57600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600080600090505b600554811015610d7957838015610d2d575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610d605750828015610d5f575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610d6c576001820191505b8080600101915050610cf6565b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dba57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e1457600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff1614151515610e3b57600080fd5b60016003805490500160045460328211151515610e5757600080fd5b818111151515610e6657600080fd5b60008114151515610e7657600080fd5b60008214151515610e8657600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038054806001018281610ef29190611f9b565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000809150600090505b60038054905081101561106957600160008581526020019081526020016000206000600383815481101515610fc957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611049576001820191505b60045482141561105c576001925061106a565b8080600101915050610f98565b5b5050919050565b600080600090505b600380549050811015611137576001600084815260200190815260200160002060006003838154811015156110aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561112a576001820191505b8080600101915050611079565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6111a1611fc7565b600380548060200260200160405190810160405280929190818152602001828054801561122357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111d9575b5050505050905090565b611235611fdb565b61123d611fdb565b6000806005546040518059106112505750595b9080825280602002602001820160405250925060009150600090505b60055481101561130c578580156112a3575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806112d657508480156112d5575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b156112ff578083838151811015156112ea57fe5b90602001906020020181815250506001820191505b808060010191505061126c565b87870360405180591061131c5750595b908082528060200260200182016040525093508790505b8681101561137e57828181518110151561134957fe5b906020019060200201518489830381518110151561136357fe5b90602001906020020181815250508080600101915050611333565b505050949350505050565b611391611fc7565b611399611fc7565b6000806003805490506040518059106113af5750595b9080825280602002602001820160405250925060009150600090505b60038054905081101561150e576001600086815260200190815260200160002060006003838154811015156113fc57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115015760038181548110151561148457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156114be57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b80806001019150506113cb565b8160405180591061151c5750595b90808252806020026020018201604052509350600090505b818110156115ab57828181518110151561154a57fe5b90602001906020020151848281518110151561156257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611534565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115f357600080fd5b600380549050816032821115151561160a57600080fd5b81811115151561161957600080fd5b6000811415151561162957600080fd5b6000821415151561163957600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116d557600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561173157600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561179d57600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361185285611b9a565b5050505050565b6000611866848484611e1d565b90506118718161167c565b9392505050565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bf57600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561191857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561197257600080fd5b600092505b600380549050831015611a5d578473ffffffffffffffffffffffffffffffffffffffff166003848154811015156119aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a505783600384815481101515611a0257fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a5d565b8280600101935050611977565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b600033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bf557600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c6057600080fd5b8460008082815260200190815260200160002060030160009054906101000a900460ff16151515611c9057600080fd5b611c9986610f8b565b15611e1557600080878152602001908152602001600020945060018560030160006101000a81548160ff0219169083151502179055508460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168560010154866002016040518082805460018160011615610100020316600290048015611d785780601f10611d4d57610100808354040283529160200191611d78565b820191906000526020600020905b815481529060010190602001808311611d5b57829003601f168201915b505091505060006040518083038185876187965a03f19250505015611dc957857f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2611e14565b857f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008560030160006101000a81548160ff0219169083151502179055505b5b505050505050565b60008360008173ffffffffffffffffffffffffffffffffffffffff1614151515611e4657600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019080519060200190611f05929190611fef565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b815481835581811511611f9657818360005260206000209182019101611f95919061206f565b5b505050565b815481835581811511611fc257818360005260206000209182019101611fc1919061206f565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061203057805160ff191683800117855561205e565b8280016001018555821561205e579182015b8281111561205d578251825591602001919060010190612042565b5b50905061206b919061206f565b5090565b61209191905b8082111561208d576000816000905550600101612075565b5090565b905600a165627a7a72305820accc0a835c01d6ef98cdf828116e1655b63571d8fdba145c5ed24b479adda85a0029", - "deployedBytecode": "0x60606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c2714610177578063173825d9146101da57806320ea8d86146102135780632f54bf6e146102365780633411c81c1461028757806354741525146102e15780637065cb4814610325578063784547a71461035e5780638b51d13f146103995780639ace38c2146103d0578063a0e67e2b146104ce578063a8abe69a14610538578063b5dc40c3146105cf578063b77bf60014610647578063ba51a6df14610670578063c01a8c8414610693578063c6427474146106b6578063d74f8edd1461074f578063dc8452cd14610778578063e20056e6146107a1578063ee22610b146107f9575b6000341115610175573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b341561018257600080fd5b610198600480803590602001909190505061081c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e557600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061085b565b005b341561021e57600080fd5b6102346004808035906020019091905050610af7565b005b341561024157600080fd5b61026d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c9f565b604051808215151515815260200191505060405180910390f35b341561029257600080fd5b6102c7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cbf565b604051808215151515815260200191505060405180910390f35b34156102ec57600080fd5b61030f600480803515159060200190919080351515906020019091905050610cee565b6040518082815260200191505060405180910390f35b341561033057600080fd5b61035c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d80565b005b341561036957600080fd5b61037f6004808035906020019091905050610f8b565b604051808215151515815260200191505060405180910390f35b34156103a457600080fd5b6103ba6004808035906020019091905050611071565b6040518082815260200191505060405180910390f35b34156103db57600080fd5b6103f1600480803590602001909190505061113d565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001831515151581526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104bc5780601f10610491576101008083540402835291602001916104bc565b820191906000526020600020905b81548152906001019060200180831161049f57829003601f168201915b50509550505050505060405180910390f35b34156104d957600080fd5b6104e1611199565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610524578082015181840152602081019050610509565b505050509050019250505060405180910390f35b341561054357600080fd5b61057860048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061122d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105bb5780820151818401526020810190506105a0565b505050509050019250505060405180910390f35b34156105da57600080fd5b6105f06004808035906020019091905050611389565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610633578082015181840152602081019050610618565b505050509050019250505060405180910390f35b341561065257600080fd5b61065a6115b3565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b61069160048080359060200190919050506115b9565b005b341561069e57600080fd5b6106b4600480803590602001909190505061167c565b005b34156106c157600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611859565b6040518082815260200191505060405180910390f35b341561075a57600080fd5b610762611878565b6040518082815260200191505060405180910390f35b341561078357600080fd5b61078b61187d565b6040518082815260200191505060405180910390f35b34156107ac57600080fd5b6107f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611883565b005b341561080457600080fd5b61081a6004808035906020019091905050611b9a565b005b60038181548110151561082b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561089757600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108f057600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610a78578273ffffffffffffffffffffffffffffffffffffffff1660038381548110151561098357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a6b5760036001600380549050038154811015156109e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a1d57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a78565b818060010192505061094d565b6001600381818054905003915081610a909190611f6f565b506003805490506004541115610aaf57610aae6003805490506115b9565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a2505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b5057600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610bbb57600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff16151515610beb57600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600080600090505b600554811015610d7957838015610d2d575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610d605750828015610d5f575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610d6c576001820191505b8080600101915050610cf6565b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dba57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e1457600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff1614151515610e3b57600080fd5b60016003805490500160045460328211151515610e5757600080fd5b818111151515610e6657600080fd5b60008114151515610e7657600080fd5b60008214151515610e8657600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038054806001018281610ef29190611f9b565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000809150600090505b60038054905081101561106957600160008581526020019081526020016000206000600383815481101515610fc957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611049576001820191505b60045482141561105c576001925061106a565b8080600101915050610f98565b5b5050919050565b600080600090505b600380549050811015611137576001600084815260200190815260200160002060006003838154811015156110aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561112a576001820191505b8080600101915050611079565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6111a1611fc7565b600380548060200260200160405190810160405280929190818152602001828054801561122357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111d9575b5050505050905090565b611235611fdb565b61123d611fdb565b6000806005546040518059106112505750595b9080825280602002602001820160405250925060009150600090505b60055481101561130c578580156112a3575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806112d657508480156112d5575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b156112ff578083838151811015156112ea57fe5b90602001906020020181815250506001820191505b808060010191505061126c565b87870360405180591061131c5750595b908082528060200260200182016040525093508790505b8681101561137e57828181518110151561134957fe5b906020019060200201518489830381518110151561136357fe5b90602001906020020181815250508080600101915050611333565b505050949350505050565b611391611fc7565b611399611fc7565b6000806003805490506040518059106113af5750595b9080825280602002602001820160405250925060009150600090505b60038054905081101561150e576001600086815260200190815260200160002060006003838154811015156113fc57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115015760038181548110151561148457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156114be57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b80806001019150506113cb565b8160405180591061151c5750595b90808252806020026020018201604052509350600090505b818110156115ab57828181518110151561154a57fe5b90602001906020020151848281518110151561156257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611534565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115f357600080fd5b600380549050816032821115151561160a57600080fd5b81811115151561161957600080fd5b6000811415151561162957600080fd5b6000821415151561163957600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116d557600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561173157600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561179d57600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361185285611b9a565b5050505050565b6000611866848484611e1d565b90506118718161167c565b9392505050565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bf57600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561191857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561197257600080fd5b600092505b600380549050831015611a5d578473ffffffffffffffffffffffffffffffffffffffff166003848154811015156119aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a505783600384815481101515611a0257fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a5d565b8280600101935050611977565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b600033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bf557600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c6057600080fd5b8460008082815260200190815260200160002060030160009054906101000a900460ff16151515611c9057600080fd5b611c9986610f8b565b15611e1557600080878152602001908152602001600020945060018560030160006101000a81548160ff0219169083151502179055508460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168560010154866002016040518082805460018160011615610100020316600290048015611d785780601f10611d4d57610100808354040283529160200191611d78565b820191906000526020600020905b815481529060010190602001808311611d5b57829003601f168201915b505091505060006040518083038185876187965a03f19250505015611dc957857f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2611e14565b857f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008560030160006101000a81548160ff0219169083151502179055505b5b505050505050565b60008360008173ffffffffffffffffffffffffffffffffffffffff1614151515611e4657600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019080519060200190611f05929190611fef565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b815481835581811511611f9657818360005260206000209182019101611f95919061206f565b5b505050565b815481835581811511611fc257818360005260206000209182019101611fc1919061206f565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061203057805160ff191683800117855561205e565b8280016001018555821561205e579182015b8281111561205d578251825591602001919060010190612042565b5b50905061206b919061206f565b5090565b61209191905b8082111561208d576000816000905550600101612075565b5090565b905600a165627a7a72305820accc0a835c01d6ef98cdf828116e1655b63571d8fdba145c5ed24b479adda85a0029", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "owners", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "address" - } - ], - "name": "confirmations", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "transactions", - "outputs": [ - { - "name": "destination", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "executed", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "transactionCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MAX_OWNER_COUNT", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "required", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "contractName": "MultiSigWallet", + "bytecode": + "0x606060405234156200001057600080fd5b6040516200238d3803806200238d833981016040528080518201919060200180519060200190919050506000825182603282111515156200005057600080fd5b8181111515156200006057600080fd5b600081141515156200007157600080fd5b600082141515156200008257600080fd5b600092505b8451831015620001bd57600260008685815181101515620000a457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620001335750600085848151811015156200011057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b15156200013f57600080fd5b60016002600087868151811015156200015457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828060010193505062000087565b8460039080519060200190620001d5929190620001e8565b50836004819055505050505050620002bd565b82805482825590600052602060002090810192821562000264579160200282015b82811115620002635782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000209565b5b50905062000273919062000277565b5090565b620002ba91905b80821115620002b657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200027e565b5090565b90565b6120c080620002cd6000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c2714610177578063173825d9146101da57806320ea8d86146102135780632f54bf6e146102365780633411c81c1461028757806354741525146102e15780637065cb4814610325578063784547a71461035e5780638b51d13f146103995780639ace38c2146103d0578063a0e67e2b146104ce578063a8abe69a14610538578063b5dc40c3146105cf578063b77bf60014610647578063ba51a6df14610670578063c01a8c8414610693578063c6427474146106b6578063d74f8edd1461074f578063dc8452cd14610778578063e20056e6146107a1578063ee22610b146107f9575b6000341115610175573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b341561018257600080fd5b610198600480803590602001909190505061081c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e557600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061085b565b005b341561021e57600080fd5b6102346004808035906020019091905050610af7565b005b341561024157600080fd5b61026d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c9f565b604051808215151515815260200191505060405180910390f35b341561029257600080fd5b6102c7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cbf565b604051808215151515815260200191505060405180910390f35b34156102ec57600080fd5b61030f600480803515159060200190919080351515906020019091905050610cee565b6040518082815260200191505060405180910390f35b341561033057600080fd5b61035c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d80565b005b341561036957600080fd5b61037f6004808035906020019091905050610f8b565b604051808215151515815260200191505060405180910390f35b34156103a457600080fd5b6103ba6004808035906020019091905050611071565b6040518082815260200191505060405180910390f35b34156103db57600080fd5b6103f1600480803590602001909190505061113d565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001831515151581526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104bc5780601f10610491576101008083540402835291602001916104bc565b820191906000526020600020905b81548152906001019060200180831161049f57829003601f168201915b50509550505050505060405180910390f35b34156104d957600080fd5b6104e1611199565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610524578082015181840152602081019050610509565b505050509050019250505060405180910390f35b341561054357600080fd5b61057860048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061122d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105bb5780820151818401526020810190506105a0565b505050509050019250505060405180910390f35b34156105da57600080fd5b6105f06004808035906020019091905050611389565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610633578082015181840152602081019050610618565b505050509050019250505060405180910390f35b341561065257600080fd5b61065a6115b3565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b61069160048080359060200190919050506115b9565b005b341561069e57600080fd5b6106b4600480803590602001909190505061167c565b005b34156106c157600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611859565b6040518082815260200191505060405180910390f35b341561075a57600080fd5b610762611878565b6040518082815260200191505060405180910390f35b341561078357600080fd5b61078b61187d565b6040518082815260200191505060405180910390f35b34156107ac57600080fd5b6107f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611883565b005b341561080457600080fd5b61081a6004808035906020019091905050611b9a565b005b60038181548110151561082b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561089757600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108f057600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610a78578273ffffffffffffffffffffffffffffffffffffffff1660038381548110151561098357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a6b5760036001600380549050038154811015156109e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a1d57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a78565b818060010192505061094d565b6001600381818054905003915081610a909190611f6f565b506003805490506004541115610aaf57610aae6003805490506115b9565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a2505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b5057600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610bbb57600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff16151515610beb57600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600080600090505b600554811015610d7957838015610d2d575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610d605750828015610d5f575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610d6c576001820191505b8080600101915050610cf6565b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dba57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e1457600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff1614151515610e3b57600080fd5b60016003805490500160045460328211151515610e5757600080fd5b818111151515610e6657600080fd5b60008114151515610e7657600080fd5b60008214151515610e8657600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038054806001018281610ef29190611f9b565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000809150600090505b60038054905081101561106957600160008581526020019081526020016000206000600383815481101515610fc957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611049576001820191505b60045482141561105c576001925061106a565b8080600101915050610f98565b5b5050919050565b600080600090505b600380549050811015611137576001600084815260200190815260200160002060006003838154811015156110aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561112a576001820191505b8080600101915050611079565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6111a1611fc7565b600380548060200260200160405190810160405280929190818152602001828054801561122357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111d9575b5050505050905090565b611235611fdb565b61123d611fdb565b6000806005546040518059106112505750595b9080825280602002602001820160405250925060009150600090505b60055481101561130c578580156112a3575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806112d657508480156112d5575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b156112ff578083838151811015156112ea57fe5b90602001906020020181815250506001820191505b808060010191505061126c565b87870360405180591061131c5750595b908082528060200260200182016040525093508790505b8681101561137e57828181518110151561134957fe5b906020019060200201518489830381518110151561136357fe5b90602001906020020181815250508080600101915050611333565b505050949350505050565b611391611fc7565b611399611fc7565b6000806003805490506040518059106113af5750595b9080825280602002602001820160405250925060009150600090505b60038054905081101561150e576001600086815260200190815260200160002060006003838154811015156113fc57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115015760038181548110151561148457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156114be57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b80806001019150506113cb565b8160405180591061151c5750595b90808252806020026020018201604052509350600090505b818110156115ab57828181518110151561154a57fe5b90602001906020020151848281518110151561156257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611534565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115f357600080fd5b600380549050816032821115151561160a57600080fd5b81811115151561161957600080fd5b6000811415151561162957600080fd5b6000821415151561163957600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116d557600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561173157600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561179d57600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361185285611b9a565b5050505050565b6000611866848484611e1d565b90506118718161167c565b9392505050565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bf57600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561191857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561197257600080fd5b600092505b600380549050831015611a5d578473ffffffffffffffffffffffffffffffffffffffff166003848154811015156119aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a505783600384815481101515611a0257fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a5d565b8280600101935050611977565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b600033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bf557600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c6057600080fd5b8460008082815260200190815260200160002060030160009054906101000a900460ff16151515611c9057600080fd5b611c9986610f8b565b15611e1557600080878152602001908152602001600020945060018560030160006101000a81548160ff0219169083151502179055508460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168560010154866002016040518082805460018160011615610100020316600290048015611d785780601f10611d4d57610100808354040283529160200191611d78565b820191906000526020600020905b815481529060010190602001808311611d5b57829003601f168201915b505091505060006040518083038185876187965a03f19250505015611dc957857f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2611e14565b857f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008560030160006101000a81548160ff0219169083151502179055505b5b505050505050565b60008360008173ffffffffffffffffffffffffffffffffffffffff1614151515611e4657600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019080519060200190611f05929190611fef565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b815481835581811511611f9657818360005260206000209182019101611f95919061206f565b5b505050565b815481835581811511611fc257818360005260206000209182019101611fc1919061206f565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061203057805160ff191683800117855561205e565b8280016001018555821561205e579182015b8281111561205d578251825591602001919060010190612042565b5b50905061206b919061206f565b5090565b61209191905b8082111561208d576000816000905550600101612075565b5090565b905600a165627a7a72305820accc0a835c01d6ef98cdf828116e1655b63571d8fdba145c5ed24b479adda85a0029", + "deployedBytecode": + "0x60606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c2714610177578063173825d9146101da57806320ea8d86146102135780632f54bf6e146102365780633411c81c1461028757806354741525146102e15780637065cb4814610325578063784547a71461035e5780638b51d13f146103995780639ace38c2146103d0578063a0e67e2b146104ce578063a8abe69a14610538578063b5dc40c3146105cf578063b77bf60014610647578063ba51a6df14610670578063c01a8c8414610693578063c6427474146106b6578063d74f8edd1461074f578063dc8452cd14610778578063e20056e6146107a1578063ee22610b146107f9575b6000341115610175573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b341561018257600080fd5b610198600480803590602001909190505061081c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e557600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061085b565b005b341561021e57600080fd5b6102346004808035906020019091905050610af7565b005b341561024157600080fd5b61026d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c9f565b604051808215151515815260200191505060405180910390f35b341561029257600080fd5b6102c7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cbf565b604051808215151515815260200191505060405180910390f35b34156102ec57600080fd5b61030f600480803515159060200190919080351515906020019091905050610cee565b6040518082815260200191505060405180910390f35b341561033057600080fd5b61035c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d80565b005b341561036957600080fd5b61037f6004808035906020019091905050610f8b565b604051808215151515815260200191505060405180910390f35b34156103a457600080fd5b6103ba6004808035906020019091905050611071565b6040518082815260200191505060405180910390f35b34156103db57600080fd5b6103f1600480803590602001909190505061113d565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001831515151581526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104bc5780601f10610491576101008083540402835291602001916104bc565b820191906000526020600020905b81548152906001019060200180831161049f57829003601f168201915b50509550505050505060405180910390f35b34156104d957600080fd5b6104e1611199565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610524578082015181840152602081019050610509565b505050509050019250505060405180910390f35b341561054357600080fd5b61057860048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061122d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105bb5780820151818401526020810190506105a0565b505050509050019250505060405180910390f35b34156105da57600080fd5b6105f06004808035906020019091905050611389565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610633578082015181840152602081019050610618565b505050509050019250505060405180910390f35b341561065257600080fd5b61065a6115b3565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b61069160048080359060200190919050506115b9565b005b341561069e57600080fd5b6106b4600480803590602001909190505061167c565b005b34156106c157600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611859565b6040518082815260200191505060405180910390f35b341561075a57600080fd5b610762611878565b6040518082815260200191505060405180910390f35b341561078357600080fd5b61078b61187d565b6040518082815260200191505060405180910390f35b34156107ac57600080fd5b6107f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611883565b005b341561080457600080fd5b61081a6004808035906020019091905050611b9a565b005b60038181548110151561082b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561089757600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108f057600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610a78578273ffffffffffffffffffffffffffffffffffffffff1660038381548110151561098357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a6b5760036001600380549050038154811015156109e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a1d57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a78565b818060010192505061094d565b6001600381818054905003915081610a909190611f6f565b506003805490506004541115610aaf57610aae6003805490506115b9565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a2505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b5057600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610bbb57600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff16151515610beb57600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600080600090505b600554811015610d7957838015610d2d575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610d605750828015610d5f575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610d6c576001820191505b8080600101915050610cf6565b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dba57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e1457600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff1614151515610e3b57600080fd5b60016003805490500160045460328211151515610e5757600080fd5b818111151515610e6657600080fd5b60008114151515610e7657600080fd5b60008214151515610e8657600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038054806001018281610ef29190611f9b565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000809150600090505b60038054905081101561106957600160008581526020019081526020016000206000600383815481101515610fc957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611049576001820191505b60045482141561105c576001925061106a565b8080600101915050610f98565b5b5050919050565b600080600090505b600380549050811015611137576001600084815260200190815260200160002060006003838154811015156110aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561112a576001820191505b8080600101915050611079565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6111a1611fc7565b600380548060200260200160405190810160405280929190818152602001828054801561122357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111d9575b5050505050905090565b611235611fdb565b61123d611fdb565b6000806005546040518059106112505750595b9080825280602002602001820160405250925060009150600090505b60055481101561130c578580156112a3575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806112d657508480156112d5575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b156112ff578083838151811015156112ea57fe5b90602001906020020181815250506001820191505b808060010191505061126c565b87870360405180591061131c5750595b908082528060200260200182016040525093508790505b8681101561137e57828181518110151561134957fe5b906020019060200201518489830381518110151561136357fe5b90602001906020020181815250508080600101915050611333565b505050949350505050565b611391611fc7565b611399611fc7565b6000806003805490506040518059106113af5750595b9080825280602002602001820160405250925060009150600090505b60038054905081101561150e576001600086815260200190815260200160002060006003838154811015156113fc57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115015760038181548110151561148457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156114be57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b80806001019150506113cb565b8160405180591061151c5750595b90808252806020026020018201604052509350600090505b818110156115ab57828181518110151561154a57fe5b90602001906020020151848281518110151561156257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611534565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115f357600080fd5b600380549050816032821115151561160a57600080fd5b81811115151561161957600080fd5b6000811415151561162957600080fd5b6000821415151561163957600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116d557600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561173157600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561179d57600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361185285611b9a565b5050505050565b6000611866848484611e1d565b90506118718161167c565b9392505050565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bf57600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561191857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561197257600080fd5b600092505b600380549050831015611a5d578473ffffffffffffffffffffffffffffffffffffffff166003848154811015156119aa57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a505783600384815481101515611a0257fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a5d565b8280600101935050611977565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b600033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bf557600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c6057600080fd5b8460008082815260200190815260200160002060030160009054906101000a900460ff16151515611c9057600080fd5b611c9986610f8b565b15611e1557600080878152602001908152602001600020945060018560030160006101000a81548160ff0219169083151502179055508460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168560010154866002016040518082805460018160011615610100020316600290048015611d785780601f10611d4d57610100808354040283529160200191611d78565b820191906000526020600020905b815481529060010190602001808311611d5b57829003601f168201915b505091505060006040518083038185876187965a03f19250505015611dc957857f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2611e14565b857f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008560030160006101000a81548160ff0219169083151502179055505b5b505050505050565b60008360008173ffffffffffffffffffffffffffffffffffffffff1614151515611e4657600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019080519060200190611f05929190611fef565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b815481835581811511611f9657818360005260206000209182019101611f95919061206f565b5b505050565b815481835581811511611fc257818360005260206000209182019101611fc1919061206f565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061203057805160ff191683800117855561205e565b8280016001018555821561205e579182015b8281111561205d578251825591602001919060010190612042565b5b50905061206b919061206f565b5090565b61209191905b8082111561208d576000816000905550600101612075565b5090565b905600a165627a7a72305820accc0a835c01d6ef98cdf828116e1655b63571d8fdba145c5ed24b479adda85a0029", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "owners", + "outputs": [ { - "inputs": [ - { - "name": "initialOwners", - "type": "address[]" - }, - { - "name": "initialRequired", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ { - "payable": true, - "stateMutability": "payable", - "type": "fallback" + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "transactionId", - "type": "uint256" - } - ], - "name": "Confirmation", - "type": "event" - }, + "name": "", + "type": "address" + } + ], + "name": "confirmations", + "outputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "transactionId", - "type": "uint256" - } - ], - "name": "Revocation", - "type": "event" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "transactions", + "outputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "transactionId", - "type": "uint256" - } - ], - "name": "Submission", - "type": "event" + "name": "destination", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "transactionId", - "type": "uint256" - } - ], - "name": "Execution", - "type": "event" + "name": "value", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "transactionId", - "type": "uint256" - } - ], - "name": "ExecutionFailure", - "type": "event" + "name": "data", + "type": "bytes" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" + "name": "executed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transactionCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MAX_OWNER_COUNT", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "required", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialOwners", + "type": "address[]" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - } - ], - "name": "OwnerAddition", - "type": "event" + "name": "initialRequired", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - } - ], - "name": "OwnerRemoval", - "type": "event" + "indexed": true, + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Confirmation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "required", - "type": "uint256" - } - ], - "name": "RequirementChange", - "type": "event" + "indexed": true, + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Revocation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Submission", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Execution", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "transactionId", + "type": "uint256" + } + ], + "name": "ExecutionFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + } + ], + "name": "OwnerAddition", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + } + ], + "name": "OwnerRemoval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "required", + "type": "uint256" + } + ], + "name": "RequirementChange", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "newOwner", + "type": "address" + } + ], + "name": "replaceOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newRequired", + "type": "uint256" + } + ], + "name": "changeRequirement", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "destination", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "replaceOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "value", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "newRequired", - "type": "uint256" - } - ], - "name": "changeRequirement", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "data", + "type": "bytes" + } + ], + "name": "submitTransaction", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "destination", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "submitTransaction", - "outputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "transactionId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "confirmTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "revokeConfirmation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "isConfirmed", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "name": "confirmTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "getConfirmationCount", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "name": "revokeConfirmation", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "count", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "pending", + "type": "bool" }, { - "constant": false, - "inputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "name": "executeTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "executed", + "type": "bool" + } + ], + "name": "getTransactionCount", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "name": "isConfirmed", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "count", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "getConfirmations", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "name": "getConfirmationCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_confirmations", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "from", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "pending", - "type": "bool" - }, - { - "name": "executed", - "type": "bool" - } - ], - "name": "getTransactionCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "to", + "type": "uint256" }, { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "pending", + "type": "bool" }, { - "constant": true, - "inputs": [ - { - "name": "transactionId", - "type": "uint256" - } - ], - "name": "getConfirmations", - "outputs": [ - { - "name": "_confirmations", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "executed", + "type": "bool" + } + ], + "name": "getTransactionIds", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "from", - "type": "uint256" - }, - { - "name": "to", - "type": "uint256" - }, - { - "name": "pending", - "type": "bool" - }, - { - "name": "executed", - "type": "bool" - } - ], - "name": "getTransactionIds", - "outputs": [ - { - "name": "_transactionIds", - "type": "uint256[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "networks": {} -} \ No newline at end of file + "name": "_transactionIds", + "type": "uint256[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "networks": {} +} diff --git a/packages/core/src/artifacts/Newsroom.json b/packages/core/src/artifacts/Newsroom.json index e0b8ef3848..fe2adebb26 100644 --- a/packages/core/src/artifacts/Newsroom.json +++ b/packages/core/src/artifacts/Newsroom.json @@ -1,409 +1,411 @@ { - "contractName": "Newsroom", - "bytecode": "0x606060405234156200001057600080fd5b604051620019283803806200192883398101604052808051820191905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200008d81620000946401000000000262000ef3176401000000009004565b506200028a565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620000f057600080fd5b600081511115156200010157600080fd5b806006908051906020019062000119929190620001db565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc60066040518080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015620001ca5780601f106200019e57610100808354040283529160200191620001ca565b820191906000526020600020905b815481529060010190602001808311620001ac57829003601f168201915b50509250505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b6200028791905b808211156200028357600081600090555060010162000269565b5090565b90565b61168e806200029a6000396000f3006060604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100eb5780630e89341c146101795780631386dc12146102155780631bfe03081461024c578063217fe6c6146102c85780632f54bf6e1461035c578063589c9648146103ad57806359269f82146103d05780637910867b1461040b5780637d72aa65146104465780638a8be6d9146104c25780638da5cb5b146104e5578063b96ed35c1461053a578063c47f0027146105ab578063ec4eb44214610608578063f2fde38b1461066b575b600080fd5b34156100f657600080fd5b6100fe6106a4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018457600080fd5b61019a6004808035906020019091905050610742565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022057600080fd5b6102366004808035906020019091905050610800565b6040518082815260200191505060405180910390f35b341561025757600080fd5b6102c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610820565b005b34156102d357600080fd5b610342600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061088a565b604051808215151515815260200191505060405180910390f35b341561036757600080fd5b610393600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061094d565b604051808215151515815260200191505060405180910390f35b34156103b857600080fd5b6103ce60048080359060200190919050506109a6565b005b34156103db57600080fd5b6103f16004808035906020019091905050610b1a565b604051808215151515815260200191505060405180910390f35b341561041657600080fd5b61042c6004808035906020019091905050610b44565b604051808215151515815260200191505060405180910390f35b341561045157600080fd5b6104c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610b6e565b005b34156104cd57600080fd5b6104e36004808035906020019091905050610bd8565b005b34156104f057600080fd5b6104f8610d19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054557600080fd5b610595600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610d3e565b6040518082815260200191505060405180910390f35b34156105b657600080fd5b610606600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ef3565b005b341561061357600080fd5b6106296004808035906020019091905050611032565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067657600080fd5b6106a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611072565b005b60068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073a5780601f1061070f5761010080835404028352916020019161073a565b820191906000526020600020905b81548152906001019060200180831161071d57829003601f168201915b505050505081565b61074a6114e1565b600360008381526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f45780601f106107c9576101008083540402835291602001916107f4565b820191906000526020600020905b8154815290600101906020018083116107d757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600201549050919050565b6040805190810160405280600681526020017f656469746f72000000000000000000000000000000000000000000000000000081525061085f3361094d565b80610870575061086f338261088a565b5b151561087b57600080fd5b61088583836111c7565b505050565b60006001826040518082805190602001908083835b6020831015156108c4578051825260208201915060208101905060208303925061089f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6040805190810160405280600681526020017f656469746f7200000000000000000000000000000000000000000000000000008152506109e53361094d565b806109f657506109f5338261088a565b5b1515610a0157600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610a3457600080fd5b60006003600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610a9057600080fd5b6004600083815260200190815260200160002060006101000a81549060ff021916905560016005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0bdd97990a2a139e8c8eff9f47049ac9c6b2771fe5b1220c5e39cb0984c88855826040518082815260200191505060405180910390a15050565b60006004600083815260200190815260200160002060009054906101000a900460ff169050919050565b60006005600083815260200190815260200160002060009054906101000a900460ff169050919050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610bad3361094d565b80610bbe5750610bbd338261088a565b5b1515610bc957600080fd5b610bd38383611350565b505050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610c173361094d565b80610c285750610c27338261088a565b5b1515610c3357600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610c6657600080fd5b6004600083815260200190815260200160002060006101000a81549060ff02191690556003600083815260200190815260200160002060008082016000610cad91906114f5565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600282016000905550507f9e517eb85c3850b12fe628cfad4012f0d9446f702ab39d8a3f37d0b3bafd48cd826040518082815260200191505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040805190810160405280600881526020017f7265706f72746572000000000000000000000000000000000000000000000000815250610d803361094d565b80610d915750610d90338261088a565b5b1515610d9c57600080fd5b60008451111515610dac57600080fd5b60025491506002600081548092919060010191905055506060604051908101604052808581526020013373ffffffffffffffffffffffffffffffffffffffff16815260200142815250600360008481526020019081526020016000206000820151816000019080519060200190610e2492919061153d565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060016004600084815260200190815260200160002060006101000a81548160ff021916908315150217905550813373ffffffffffffffffffffffffffffffffffffffff167f025634bfc3570c5ad753abe7b2bb3edb898d85b407cce532bd69d8dccff3f2b160405160405180910390a38192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4e57600080fd5b60008151111515610f5e57600080fd5b8060069080519060200190610f749291906115bd565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc600660405180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156110215780601f10610ff657610100808354040283529160200191611021565b820191906000526020600020905b81548152906001019060200180831161100457829003601f168201915b50509250505060405180910390a150565b60006003600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001816040518082805190602001908083835b6020831015156111ff57805182526020820191506020810190506020830392506111da565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6a52fb0cb0e75e6a6721483d2e539b38273ec6fe95b648a41e1a901594aeccb8836040518080602001828103825283818151815260200191508051906020019080838360005b838110156113125780820151818401526020810190506112f7565b50505050905090810190601f16801561133f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b600180826040518082805190602001908083835b6020831015156113895780518252602082019150602081019050602083039250611364565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa40c1dc2b34f6b51c3ea614b688f243e50047ed9fa3ea19010303d70dac781ed836040518080602001828103825283818151815260200191508051906020019080838360005b838110156114a3578082015181840152602081019050611488565b50505050905090810190601f1680156114d05780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f1061151b575061153a565b601f016020900490600052602060002090810190611539919061163d565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061157e57805160ff19168380011785556115ac565b828001600101855582156115ac579182015b828111156115ab578251825591602001919060010190611590565b5b5090506115b9919061163d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115fe57805160ff191683800117855561162c565b8280016001018555821561162c579182015b8281111561162b578251825591602001919060010190611610565b5b509050611639919061163d565b5090565b61165f91905b8082111561165b576000816000905550600101611643565b5090565b905600a165627a7a72305820fccb2c67b14fb77ea4e2f7550eecbb6a98f44624257f06166e3970ec2185f4170029", - "deployedBytecode": "0x6060604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100eb5780630e89341c146101795780631386dc12146102155780631bfe03081461024c578063217fe6c6146102c85780632f54bf6e1461035c578063589c9648146103ad57806359269f82146103d05780637910867b1461040b5780637d72aa65146104465780638a8be6d9146104c25780638da5cb5b146104e5578063b96ed35c1461053a578063c47f0027146105ab578063ec4eb44214610608578063f2fde38b1461066b575b600080fd5b34156100f657600080fd5b6100fe6106a4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018457600080fd5b61019a6004808035906020019091905050610742565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022057600080fd5b6102366004808035906020019091905050610800565b6040518082815260200191505060405180910390f35b341561025757600080fd5b6102c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610820565b005b34156102d357600080fd5b610342600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061088a565b604051808215151515815260200191505060405180910390f35b341561036757600080fd5b610393600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061094d565b604051808215151515815260200191505060405180910390f35b34156103b857600080fd5b6103ce60048080359060200190919050506109a6565b005b34156103db57600080fd5b6103f16004808035906020019091905050610b1a565b604051808215151515815260200191505060405180910390f35b341561041657600080fd5b61042c6004808035906020019091905050610b44565b604051808215151515815260200191505060405180910390f35b341561045157600080fd5b6104c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610b6e565b005b34156104cd57600080fd5b6104e36004808035906020019091905050610bd8565b005b34156104f057600080fd5b6104f8610d19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054557600080fd5b610595600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610d3e565b6040518082815260200191505060405180910390f35b34156105b657600080fd5b610606600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ef3565b005b341561061357600080fd5b6106296004808035906020019091905050611032565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067657600080fd5b6106a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611072565b005b60068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073a5780601f1061070f5761010080835404028352916020019161073a565b820191906000526020600020905b81548152906001019060200180831161071d57829003601f168201915b505050505081565b61074a6114e1565b600360008381526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f45780601f106107c9576101008083540402835291602001916107f4565b820191906000526020600020905b8154815290600101906020018083116107d757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600201549050919050565b6040805190810160405280600681526020017f656469746f72000000000000000000000000000000000000000000000000000081525061085f3361094d565b80610870575061086f338261088a565b5b151561087b57600080fd5b61088583836111c7565b505050565b60006001826040518082805190602001908083835b6020831015156108c4578051825260208201915060208101905060208303925061089f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6040805190810160405280600681526020017f656469746f7200000000000000000000000000000000000000000000000000008152506109e53361094d565b806109f657506109f5338261088a565b5b1515610a0157600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610a3457600080fd5b60006003600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610a9057600080fd5b6004600083815260200190815260200160002060006101000a81549060ff021916905560016005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0bdd97990a2a139e8c8eff9f47049ac9c6b2771fe5b1220c5e39cb0984c88855826040518082815260200191505060405180910390a15050565b60006004600083815260200190815260200160002060009054906101000a900460ff169050919050565b60006005600083815260200190815260200160002060009054906101000a900460ff169050919050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610bad3361094d565b80610bbe5750610bbd338261088a565b5b1515610bc957600080fd5b610bd38383611350565b505050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610c173361094d565b80610c285750610c27338261088a565b5b1515610c3357600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610c6657600080fd5b6004600083815260200190815260200160002060006101000a81549060ff02191690556003600083815260200190815260200160002060008082016000610cad91906114f5565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600282016000905550507f9e517eb85c3850b12fe628cfad4012f0d9446f702ab39d8a3f37d0b3bafd48cd826040518082815260200191505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040805190810160405280600881526020017f7265706f72746572000000000000000000000000000000000000000000000000815250610d803361094d565b80610d915750610d90338261088a565b5b1515610d9c57600080fd5b60008451111515610dac57600080fd5b60025491506002600081548092919060010191905055506060604051908101604052808581526020013373ffffffffffffffffffffffffffffffffffffffff16815260200142815250600360008481526020019081526020016000206000820151816000019080519060200190610e2492919061153d565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060016004600084815260200190815260200160002060006101000a81548160ff021916908315150217905550813373ffffffffffffffffffffffffffffffffffffffff167f025634bfc3570c5ad753abe7b2bb3edb898d85b407cce532bd69d8dccff3f2b160405160405180910390a38192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4e57600080fd5b60008151111515610f5e57600080fd5b8060069080519060200190610f749291906115bd565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc600660405180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156110215780601f10610ff657610100808354040283529160200191611021565b820191906000526020600020905b81548152906001019060200180831161100457829003601f168201915b50509250505060405180910390a150565b60006003600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001816040518082805190602001908083835b6020831015156111ff57805182526020820191506020810190506020830392506111da565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6a52fb0cb0e75e6a6721483d2e539b38273ec6fe95b648a41e1a901594aeccb8836040518080602001828103825283818151815260200191508051906020019080838360005b838110156113125780820151818401526020810190506112f7565b50505050905090810190601f16801561133f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b600180826040518082805190602001908083835b6020831015156113895780518252602082019150602081019050602083039250611364565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa40c1dc2b34f6b51c3ea614b688f243e50047ed9fa3ea19010303d70dac781ed836040518080602001828103825283818151815260200191508051906020019080838360005b838110156114a3578082015181840152602081019050611488565b50505050905090810190601f1680156114d05780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f1061151b575061153a565b601f016020900490600052602060002090810190611539919061163d565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061157e57805160ff19168380011785556115ac565b828001600101855582156115ac579182015b828111156115ab578251825591602001919060010190611590565b5b5090506115b9919061163d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115fe57805160ff191683800117855561162c565b8280016001018555821561162c579182015b8281111561162b578251825591602001919060010190611610565b5b509050611639919061163d565b5090565b61165f91905b8082111561165b576000816000905550600101611643565b5090565b905600a165627a7a72305820fccb2c67b14fb77ea4e2f7550eecbb6a98f44624257f06166e3970ec2185f4170029", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "contractName": "Newsroom", + "bytecode": + "0x606060405234156200001057600080fd5b604051620019283803806200192883398101604052808051820191905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200008d81620000946401000000000262000ef3176401000000009004565b506200028a565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620000f057600080fd5b600081511115156200010157600080fd5b806006908051906020019062000119929190620001db565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc60066040518080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015620001ca5780601f106200019e57610100808354040283529160200191620001ca565b820191906000526020600020905b815481529060010190602001808311620001ac57829003601f168201915b50509250505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b6200028791905b808211156200028357600081600090555060010162000269565b5090565b90565b61168e806200029a6000396000f3006060604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100eb5780630e89341c146101795780631386dc12146102155780631bfe03081461024c578063217fe6c6146102c85780632f54bf6e1461035c578063589c9648146103ad57806359269f82146103d05780637910867b1461040b5780637d72aa65146104465780638a8be6d9146104c25780638da5cb5b146104e5578063b96ed35c1461053a578063c47f0027146105ab578063ec4eb44214610608578063f2fde38b1461066b575b600080fd5b34156100f657600080fd5b6100fe6106a4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018457600080fd5b61019a6004808035906020019091905050610742565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022057600080fd5b6102366004808035906020019091905050610800565b6040518082815260200191505060405180910390f35b341561025757600080fd5b6102c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610820565b005b34156102d357600080fd5b610342600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061088a565b604051808215151515815260200191505060405180910390f35b341561036757600080fd5b610393600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061094d565b604051808215151515815260200191505060405180910390f35b34156103b857600080fd5b6103ce60048080359060200190919050506109a6565b005b34156103db57600080fd5b6103f16004808035906020019091905050610b1a565b604051808215151515815260200191505060405180910390f35b341561041657600080fd5b61042c6004808035906020019091905050610b44565b604051808215151515815260200191505060405180910390f35b341561045157600080fd5b6104c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610b6e565b005b34156104cd57600080fd5b6104e36004808035906020019091905050610bd8565b005b34156104f057600080fd5b6104f8610d19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054557600080fd5b610595600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610d3e565b6040518082815260200191505060405180910390f35b34156105b657600080fd5b610606600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ef3565b005b341561061357600080fd5b6106296004808035906020019091905050611032565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067657600080fd5b6106a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611072565b005b60068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073a5780601f1061070f5761010080835404028352916020019161073a565b820191906000526020600020905b81548152906001019060200180831161071d57829003601f168201915b505050505081565b61074a6114e1565b600360008381526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f45780601f106107c9576101008083540402835291602001916107f4565b820191906000526020600020905b8154815290600101906020018083116107d757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600201549050919050565b6040805190810160405280600681526020017f656469746f72000000000000000000000000000000000000000000000000000081525061085f3361094d565b80610870575061086f338261088a565b5b151561087b57600080fd5b61088583836111c7565b505050565b60006001826040518082805190602001908083835b6020831015156108c4578051825260208201915060208101905060208303925061089f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6040805190810160405280600681526020017f656469746f7200000000000000000000000000000000000000000000000000008152506109e53361094d565b806109f657506109f5338261088a565b5b1515610a0157600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610a3457600080fd5b60006003600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610a9057600080fd5b6004600083815260200190815260200160002060006101000a81549060ff021916905560016005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0bdd97990a2a139e8c8eff9f47049ac9c6b2771fe5b1220c5e39cb0984c88855826040518082815260200191505060405180910390a15050565b60006004600083815260200190815260200160002060009054906101000a900460ff169050919050565b60006005600083815260200190815260200160002060009054906101000a900460ff169050919050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610bad3361094d565b80610bbe5750610bbd338261088a565b5b1515610bc957600080fd5b610bd38383611350565b505050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610c173361094d565b80610c285750610c27338261088a565b5b1515610c3357600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610c6657600080fd5b6004600083815260200190815260200160002060006101000a81549060ff02191690556003600083815260200190815260200160002060008082016000610cad91906114f5565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600282016000905550507f9e517eb85c3850b12fe628cfad4012f0d9446f702ab39d8a3f37d0b3bafd48cd826040518082815260200191505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040805190810160405280600881526020017f7265706f72746572000000000000000000000000000000000000000000000000815250610d803361094d565b80610d915750610d90338261088a565b5b1515610d9c57600080fd5b60008451111515610dac57600080fd5b60025491506002600081548092919060010191905055506060604051908101604052808581526020013373ffffffffffffffffffffffffffffffffffffffff16815260200142815250600360008481526020019081526020016000206000820151816000019080519060200190610e2492919061153d565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060016004600084815260200190815260200160002060006101000a81548160ff021916908315150217905550813373ffffffffffffffffffffffffffffffffffffffff167f025634bfc3570c5ad753abe7b2bb3edb898d85b407cce532bd69d8dccff3f2b160405160405180910390a38192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4e57600080fd5b60008151111515610f5e57600080fd5b8060069080519060200190610f749291906115bd565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc600660405180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156110215780601f10610ff657610100808354040283529160200191611021565b820191906000526020600020905b81548152906001019060200180831161100457829003601f168201915b50509250505060405180910390a150565b60006003600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001816040518082805190602001908083835b6020831015156111ff57805182526020820191506020810190506020830392506111da565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6a52fb0cb0e75e6a6721483d2e539b38273ec6fe95b648a41e1a901594aeccb8836040518080602001828103825283818151815260200191508051906020019080838360005b838110156113125780820151818401526020810190506112f7565b50505050905090810190601f16801561133f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b600180826040518082805190602001908083835b6020831015156113895780518252602082019150602081019050602083039250611364565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa40c1dc2b34f6b51c3ea614b688f243e50047ed9fa3ea19010303d70dac781ed836040518080602001828103825283818151815260200191508051906020019080838360005b838110156114a3578082015181840152602081019050611488565b50505050905090810190601f1680156114d05780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f1061151b575061153a565b601f016020900490600052602060002090810190611539919061163d565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061157e57805160ff19168380011785556115ac565b828001600101855582156115ac579182015b828111156115ab578251825591602001919060010190611590565b5b5090506115b9919061163d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115fe57805160ff191683800117855561162c565b8280016001018555821561162c579182015b8281111561162b578251825591602001919060010190611610565b5b509050611639919061163d565b5090565b61165f91905b8082111561165b576000816000905550600101611643565b5090565b905600a165627a7a72305820fccb2c67b14fb77ea4e2f7550eecbb6a98f44624257f06166e3970ec2185f4170029", + "deployedBytecode": + "0x6060604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100eb5780630e89341c146101795780631386dc12146102155780631bfe03081461024c578063217fe6c6146102c85780632f54bf6e1461035c578063589c9648146103ad57806359269f82146103d05780637910867b1461040b5780637d72aa65146104465780638a8be6d9146104c25780638da5cb5b146104e5578063b96ed35c1461053a578063c47f0027146105ab578063ec4eb44214610608578063f2fde38b1461066b575b600080fd5b34156100f657600080fd5b6100fe6106a4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018457600080fd5b61019a6004808035906020019091905050610742565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022057600080fd5b6102366004808035906020019091905050610800565b6040518082815260200191505060405180910390f35b341561025757600080fd5b6102c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610820565b005b34156102d357600080fd5b610342600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061088a565b604051808215151515815260200191505060405180910390f35b341561036757600080fd5b610393600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061094d565b604051808215151515815260200191505060405180910390f35b34156103b857600080fd5b6103ce60048080359060200190919050506109a6565b005b34156103db57600080fd5b6103f16004808035906020019091905050610b1a565b604051808215151515815260200191505060405180910390f35b341561041657600080fd5b61042c6004808035906020019091905050610b44565b604051808215151515815260200191505060405180910390f35b341561045157600080fd5b6104c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610b6e565b005b34156104cd57600080fd5b6104e36004808035906020019091905050610bd8565b005b34156104f057600080fd5b6104f8610d19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054557600080fd5b610595600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610d3e565b6040518082815260200191505060405180910390f35b34156105b657600080fd5b610606600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ef3565b005b341561061357600080fd5b6106296004808035906020019091905050611032565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067657600080fd5b6106a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611072565b005b60068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073a5780601f1061070f5761010080835404028352916020019161073a565b820191906000526020600020905b81548152906001019060200180831161071d57829003601f168201915b505050505081565b61074a6114e1565b600360008381526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f45780601f106107c9576101008083540402835291602001916107f4565b820191906000526020600020905b8154815290600101906020018083116107d757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600201549050919050565b6040805190810160405280600681526020017f656469746f72000000000000000000000000000000000000000000000000000081525061085f3361094d565b80610870575061086f338261088a565b5b151561087b57600080fd5b61088583836111c7565b505050565b60006001826040518082805190602001908083835b6020831015156108c4578051825260208201915060208101905060208303925061089f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6040805190810160405280600681526020017f656469746f7200000000000000000000000000000000000000000000000000008152506109e53361094d565b806109f657506109f5338261088a565b5b1515610a0157600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610a3457600080fd5b60006003600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610a9057600080fd5b6004600083815260200190815260200160002060006101000a81549060ff021916905560016005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0bdd97990a2a139e8c8eff9f47049ac9c6b2771fe5b1220c5e39cb0984c88855826040518082815260200191505060405180910390a15050565b60006004600083815260200190815260200160002060009054906101000a900460ff169050919050565b60006005600083815260200190815260200160002060009054906101000a900460ff169050919050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610bad3361094d565b80610bbe5750610bbd338261088a565b5b1515610bc957600080fd5b610bd38383611350565b505050565b6040805190810160405280600681526020017f656469746f720000000000000000000000000000000000000000000000000000815250610c173361094d565b80610c285750610c27338261088a565b5b1515610c3357600080fd5b600115156004600084815260200190815260200160002060009054906101000a900460ff161515141515610c6657600080fd5b6004600083815260200190815260200160002060006101000a81549060ff02191690556003600083815260200190815260200160002060008082016000610cad91906114f5565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600282016000905550507f9e517eb85c3850b12fe628cfad4012f0d9446f702ab39d8a3f37d0b3bafd48cd826040518082815260200191505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040805190810160405280600881526020017f7265706f72746572000000000000000000000000000000000000000000000000815250610d803361094d565b80610d915750610d90338261088a565b5b1515610d9c57600080fd5b60008451111515610dac57600080fd5b60025491506002600081548092919060010191905055506060604051908101604052808581526020013373ffffffffffffffffffffffffffffffffffffffff16815260200142815250600360008481526020019081526020016000206000820151816000019080519060200190610e2492919061153d565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060016004600084815260200190815260200160002060006101000a81548160ff021916908315150217905550813373ffffffffffffffffffffffffffffffffffffffff167f025634bfc3570c5ad753abe7b2bb3edb898d85b407cce532bd69d8dccff3f2b160405160405180910390a38192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4e57600080fd5b60008151111515610f5e57600080fd5b8060069080519060200190610f749291906115bd565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc600660405180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156110215780601f10610ff657610100808354040283529160200191611021565b820191906000526020600020905b81548152906001019060200180831161100457829003601f168201915b50509250505060405180910390a150565b60006003600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001816040518082805190602001908083835b6020831015156111ff57805182526020820191506020810190506020830392506111da565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6a52fb0cb0e75e6a6721483d2e539b38273ec6fe95b648a41e1a901594aeccb8836040518080602001828103825283818151815260200191508051906020019080838360005b838110156113125780820151818401526020810190506112f7565b50505050905090810190601f16801561133f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b600180826040518082805190602001908083835b6020831015156113895780518252602082019150602081019050602083039250611364565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa40c1dc2b34f6b51c3ea614b688f243e50047ed9fa3ea19010303d70dac781ed836040518080602001828103825283818151815260200191508051906020019080838360005b838110156114a3578082015181840152602081019050611488565b50505050905090810190601f1680156114d05780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f1061151b575061153a565b601f016020900490600052602060002090810190611539919061163d565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061157e57805160ff19168380011785556115ac565b828001600101855582156115ac579182015b828111156115ab578251825591602001919060010190611590565b5b5090506115b9919061163d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115fe57805160ff191683800117855561162c565b8280016001018555821561162c579182015b8281111561162b578251825591602001919060010190611610565b5b509050611639919061163d565b5090565b61165f91905b8082111561165b576000816000905550600101611643565b5090565b905600a165627a7a72305820fccb2c67b14fb77ea4e2f7550eecbb6a98f44624257f06166e3970ec2185f4170029", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "user", - "type": "address" - }, - { - "name": "role", - "type": "string" - } - ], - "name": "hasRole", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "user", + "type": "address" }, { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "role", + "type": "string" + } + ], + "name": "hasRole", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "inputs": [ - { - "name": "newsroomName", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "author", - "type": "address" - }, - { - "indexed": true, - "name": "id", - "type": "uint256" - } - ], - "name": "ContentProposed", - "type": "event" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "id", - "type": "uint256" - } - ], - "name": "ContentApproved", - "type": "event" - }, + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "id", - "type": "uint256" - } - ], - "name": "ContentDenied", - "type": "event" - }, + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newName", - "type": "string" - } - ], - "name": "NameChanged", - "type": "event" - }, + "name": "newsroomName", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "granter", - "type": "address" - }, - { - "indexed": true, - "name": "grantee", - "type": "address" - }, - { - "indexed": false, - "name": "role", - "type": "string" - } - ], - "name": "RoleAdded", - "type": "event" + "indexed": true, + "name": "author", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "granter", - "type": "address" - }, - { - "indexed": true, - "name": "grantee", - "type": "address" - }, - { - "indexed": false, - "name": "role", - "type": "string" - } - ], - "name": "RoleRemoved", - "type": "event" - }, + "indexed": true, + "name": "id", + "type": "uint256" + } + ], + "name": "ContentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, + "indexed": false, + "name": "id", + "type": "uint256" + } + ], + "name": "ContentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "contentId", - "type": "uint256" - } - ], - "name": "author", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "indexed": false, + "name": "id", + "type": "uint256" + } + ], + "name": "ContentDenied", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "contentId", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "indexed": false, + "name": "newName", + "type": "string" + } + ], + "name": "NameChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "contentId", - "type": "uint256" - } - ], - "name": "timestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": true, + "name": "granter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "contentId", - "type": "uint256" - } - ], - "name": "isProposed", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": true, + "name": "grantee", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "contentId", - "type": "uint256" - } - ], - "name": "isApproved", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "indexed": false, + "name": "role", + "type": "string" + } + ], + "name": "RoleAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": false, - "inputs": [ - { - "name": "newName", - "type": "string" - } - ], - "name": "setName", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": true, + "name": "granter", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "who", - "type": "address" - }, - { - "name": "role", - "type": "string" - } - ], - "name": "addRole", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": true, + "name": "grantee", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "who", - "type": "address" - }, - { - "name": "role", - "type": "string" - } - ], - "name": "removeRole", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": false, + "name": "role", + "type": "string" + } + ], + "name": "RoleRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "contentUri", - "type": "string" - } - ], - "name": "proposeContent", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "contentId", + "type": "uint256" + } + ], + "name": "author", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "contentId", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "contentId", + "type": "uint256" + } + ], + "name": "timestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "contentId", + "type": "uint256" + } + ], + "name": "isProposed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "contentId", + "type": "uint256" + } + ], + "name": "isApproved", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newName", + "type": "string" + } + ], + "name": "setName", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "who", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "id", - "type": "uint256" - } - ], - "name": "approveContent", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "role", + "type": "string" + } + ], + "name": "addRole", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "who", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "id", - "type": "uint256" - } - ], - "name": "denyContent", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "networks": {} -} \ No newline at end of file + "name": "role", + "type": "string" + } + ], + "name": "removeRole", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contentUri", + "type": "string" + } + ], + "name": "proposeContent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "id", + "type": "uint256" + } + ], + "name": "approveContent", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "id", + "type": "uint256" + } + ], + "name": "denyContent", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "networks": {} +} diff --git a/packages/core/src/artifacts/OwnedAddressTCRWithAppeals.json b/packages/core/src/artifacts/OwnedAddressTCRWithAppeals.json index 8cd9eeddac..1365244b78 100644 --- a/packages/core/src/artifacts/OwnedAddressTCRWithAppeals.json +++ b/packages/core/src/artifacts/OwnedAddressTCRWithAppeals.json @@ -1,1149 +1,1151 @@ { - "contractName": "OwnedAddressTCRWithAppeals", - "bytecode": "0x606060405260016005556203f48060095562127500600a55341561002257600080fd5b60405160a08061537d8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190505084848482828282828282600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050506151b0806101cd6000396000f300606060405260043610610246576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301162b931461024b5780630bcbb5e51461028457806315586cf5146102ad578063186953a6146103105780631fcbdb7614610347578063200c7295146103945780632435766b146103d657806326c44aac146104115780632e7700d01461045e5780632ea9b696146104ab57806330d7dde4146104fc5780633770c25f14610533578063432261bb14610556578063463371a31461058f57806346904840146105b857806347e7ef241461060d57806354fd4d501461064f57806355246b9c146106785780635fd6722b146106fd57806361a9a8ca1461074e5780636477d07d1461079f5780636b244bae146108185780636eefcab91461084f578063706f0cb9146108a057806379110a47146108db5780637984e6b5146108fe5780637d3c5d01146109275780637fd57e0b1461096057806386bb8f37146109995780638fc36548146109c55780639dd2216b14610a12578063a5ba3b1e14610a63578063a7aad3db14610abd578063b2380e8f14610b1c578063bad7740e14610b69578063bc4b010f14610b8c578063c178521f14610c1c578063c8187cf114610c6d578063d229b61914610ca4578063d5fd9e6614610cb9578063dd4e7cfd14610d0e578063e1e3f91514610d5f578063e74b981b14610db4578063f3fef3a314610ded578063f81b164b14610e2f578063fa5f9eb414610e7c578063fc0c546a14610ea5578063fce1ccca14610efa575b600080fd5b341561025657600080fd5b610282600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f4f565b005b341561028f57600080fd5b61029761112e565b6040518082815260200191505060405180910390f35b34156102b857600080fd5b6102ce6004808035906020019091905050611134565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031b57600080fd5b6103316004808035906020019091905050611173565b6040518082815260200191505060405180910390f35b341561035257600080fd5b61037e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b341561039f57600080fd5b6103d4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b005b34156103e157600080fd5b6103f760048080359060200190919050506116c8565b604051808215151515815260200191505060405180910390f35b341561041c57600080fd5b610448600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116e8565b6040518082815260200191505060405180910390f35b341561046957600080fd5b610495600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611734565b6040518082815260200191505060405180910390f35b34156104b657600080fd5b6104e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611780565b604051808215151515815260200191505060405180910390f35b341561050757600080fd5b61051d6004808035906020019091905050611898565b6040518082815260200191505060405180910390f35b341561053e57600080fd5b61055460048080359060200190919050506118b7565b005b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611963565b005b341561059a57600080fd5b6105a2611c33565b6040518082815260200191505060405180910390f35b34156105c357600080fd5b6105cb611c39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061857600080fd5b61064d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c5f565b005b341561065a57600080fd5b610662611e98565b6040518082815260200191505060405180910390f35b341561068357600080fd5b6106fb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e9e565b005b341561070857600080fd5b610734600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f76565b604051808215151515815260200191505060405180910390f35b341561075957600080fd5b610785600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fcf565b604051808215151515815260200191505060405180910390f35b34156107aa57600080fd5b6107d6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061201d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082357600080fd5b6108396004808035906020019091905050612089565b6040518082815260200191505060405180910390f35b341561085a57600080fd5b610886600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120a8565b604051808215151515815260200191505060405180910390f35b34156108ab57600080fd5b6108c1600480803590602001909190505061216a565b604051808215151515815260200191505060405180910390f35b34156108e657600080fd5b6108fc6004808035906020019091905050612196565b005b341561090957600080fd5b610911612242565b6040518082815260200191505060405180910390f35b341561093257600080fd5b61095e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612248565b005b341561096b57600080fd5b610997600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061237b565b005b34156109a457600080fd5b6109c3600480803590602001909190803590602001909190505061247e565b005b34156109d057600080fd5b6109fc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061284c565b6040518082815260200191505060405180910390f35b3415610a1d57600080fd5b610a49600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612898565b604051808215151515815260200191505060405180910390f35b3415610a6e57600080fd5b610aa3600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128f1565b604051808215151515815260200191505060405180910390f35b3415610ac857600080fd5b610b06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061295b565b6040518082815260200191505060405180910390f35b3415610b2757600080fd5b610b53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ac9565b6040518082815260200191505060405180910390f35b3415610b7457600080fd5b610b8a6004808035906020019091905050612b15565b005b3415610b9757600080fd5b610c06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612bc1565b6040518082815260200191505060405180910390f35b3415610c2757600080fd5b610c53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613545565b604051808215151515815260200191505060405180910390f35b3415610c7857600080fd5b610c8e600480803590602001909190505061359e565b6040518082815260200191505060405180910390f35b3415610caf57600080fd5b610cb761379f565b005b3415610cc457600080fd5b610ccc613900565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d1957600080fd5b610d45600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613926565b604051808215151515815260200191505060405180910390f35b3415610d6a57600080fd5b610d72613a2c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dbf57600080fd5b610deb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a52565b005b3415610df857600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b55565b005b3415610e3a57600080fd5b610e66600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613e66565b6040518082815260200191505060405180910390f35b3415610e8757600080fd5b610e8f613eb2565b6040518082815260200191505060405180910390f35b3415610eb057600080fd5b610eb8613eb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610f0557600080fd5b610f0d613ede565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610fdd83613926565b1561103357610feb83613f04565b8273ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a2611129565b61103c83611780565b801561110b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318382600301546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b505050604051805190508061110a575060008260000154145b5b1561111e5761111983613f61565b611128565b611127836140d7565b5b5b505050565b600a5481565b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123d57600080fd5b61124684612898565b15151561125257600080fd5b61125b84611fcf565b15151561126757600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561133157600080fd5b6102c65a03f1151561134257600080fd5b50505060405180519050831015151561135a57600080fd5b839150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156113e157600080fd5b6102c65a03f115156113f257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415151561141f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561152057600080fd5b6102c65a03f1151561153157600080fd5b50505060405180519050151561154657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600001819055508173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156115fc57600080fd5b6102c65a03f1151561160d57600080fd5b505050604051805190508160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160010160006101000a81548160ff0219169083151502179055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167fc7ba65315d60c160dd17a515cc2c209493b01812439c4a3de6eed83adbd0147160405160405180910390a250505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506117d1836120a8565b15156117dc57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561187557600080fd5b6102c65a03f1151561188657600080fd5b50505060405180519050915050919050565b6000806000838152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191357600080fd5b60008111151561192257600080fd5b80600a819055507facfa781007712808522bc47b0dbc6d7aff970189f76b332ed8fe07b30c5e243a816040518082815260200191505060405180910390a150565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a4657600080fd5b428160000154111515611a5857600080fd5b8060010160009054906101000a900460ff16151515611a7657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306008546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611b7957600080fd5b6102c65a03f11515611b8a57600080fd5b505050604051805190501515611b9f57600080fd5b60018160010160006101000a81548160ff0219169083151502179055506008548160020181905550600a54420181600301819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f11435de103cf37f78c58ddfa8dc649e42817a1fa6c17c9e0193aa98609d1529c60405160405180910390a3505050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d0057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611e0157600080fd5b6102c65a03f11515611e1257600080fd5b505050604051805190501515611e2757600080fd5b8181600201600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15838360020154604051808381526020018281526020019250505060405180910390a2505050565b60055481565b8260008190503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611f2757600080fd5b6102c65a03f11515611f3857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515611f6457600080fd5b611f6f858585614257565b5050505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff169050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154118015612162575060008082815260200190815260200160002060010160149054906101000a900460ff16155b915050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121f257600080fd5b60008111151561220157600080fd5b806008819055507ff6374eb73c33cf2a75b7d060f0c97c0ff6efcec0e8844b1746e73034ec9699d0816040518082815260200191505060405180910390a150565b60085481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122a657600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600301541115156122f957600080fd5b8060040160009054906101000a900460ff1615151561231757600080fd5b60018160040160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f25f5ea68e34f6d6918854432015e5286b3b35476963d7aebf37fbe7f95983c5d60405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561241c57600080fd5b61242582612898565b151561243057600080fd5b60008160030154148061246657506000808260030154815260200190815260200160002060010160149054906101000a900460ff165b151561247157600080fd5b61247a8261427f565b5050565b6000806000151560008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156124f357600080fd5b6001151560008086815260200190815260200160002060010160149054906101000a900460ff16151514151561252857600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600d60008a815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b151561262957600080fd5b6102c65a03f1151561263a57600080fd5b50505060405180519050915061265133858561295b565b905081600080868152602001908152602001600020600301600082825403925050819055508060008086815260200190815260200160002060000160008282540392505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561276657600080fd5b6102c65a03f1151561277757600080fd5b50505060405180519050151561278c57600080fd5b600160008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e2731743836040518082815260200191505060405180910390a350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600084815260200190815260200160002060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080600080600080878152602001908152602001600020600301549250600080878152602001908152602001600020600001549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600d60008c815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515612a9257600080fd5b6102c65a03f11515612aa357600080fd5b50505060405180519050905082828202811515612abc57fe5b0493505050509392505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7157600080fd5b600081111515612b8057600080fd5b806009819055507f2c2c75d02a201fbf3127fb9b341df2d73db49e6b29860bd720fdec66f99e16fe816040518082815260200191505060405180910390a150565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612cd257600080fd5b6102c65a03f11515612ce357600080fd5b505050604051805190509150612cf886611fcf565b80612d1157508260010160009054906101000a900460ff165b1515612d1c57600080fd5b600083600301541480612d5257506000808460030154815260200190815260200160002060010160149054906101000a900460ff165b1515612d5d57600080fd5b8183600201541015612d7b57612d728661427f565b6000935061353c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e7c57600080fd5b6102c65a03f11515612e8d57600080fd5b505050604051805190501515612ea257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d60600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f766f746551756f72756d00000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612faa57600080fd5b6102c65a03f11515612fbb57600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f636f6d6d697453746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561308f57600080fd5b6102c65a03f115156130a057600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f72657665616c53746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561317457600080fd5b6102c65a03f1151561318557600080fd5b505050604051805190506000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b15156131f757600080fd5b6102c65a03f1151561320857600080fd5b50505060405180519050905060a060405190810160405280606484600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600f8152602001807f64697370656e736174696f6e5063740000000000000000000000000000000000815250602001915050602060405180830381600087803b15156132ed57600080fd5b6102c65a03f115156132fe57600080fd5b505050604051805190506064030281151561331557fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200183815260200160008152506000808381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015590505080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540392505081905550808673ffffffffffffffffffffffffffffffffffffffff167fba4fed76bf6f631503eec96cf182e07300945e578c5abd54d73d9794448de9a484886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156134fd5780820151818401526020810190506134e2565b50505050905090810190601f16801561352a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38093505b50505092915050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff161580156136805750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561366457600080fd5b6102c65a03f1151561367557600080fd5b505050604051805190505b151561368b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561372657600080fd5b6102c65a03f1151561373757600080fd5b5050506040518051905014156137675760008083815260200190815260200160002060020154600202905061379a565b60008083815260200190815260200160002060000154600080848152602001908152602001600020600201546002020390505b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137fd57600080fd5b600b5490506000600b81905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156138d757600080fd5b6102c65a03f115156138e857600080fd5b5050506040518051905015156138fd57600080fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061397783611fcf565b80156139c4575042600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154105b80156139d657506139d483612898565b155b8015613a1357506000811480613a1257506001151560008083815260200190815260200160002060010160149054906101000a900460ff161515145b5b15613a215760019150613a26565b600091505b50919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613aae57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf9a9534339a9d6b81696e05dcfb614b7dc518a31d48be3cfb757988381fb32381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613bf657600080fd5b80600201548211151515613c0957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805190508282600201540310151515613d0257600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613dcf57600080fd5b6102c65a03f11515613de057600080fd5b505050604051805190501515613df557600080fd5b8181600201600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb838360020154604051808381526020018281526020019250505060405180910390a2505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561404257600080fd5b6102c65a03f1151561405357600080fd5b50505060405180519050156140705761406b83614484565b6140d2565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415156140c457600080fd5b600954420181600001819055505b505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141580156141325750806000015442115b151561413d57600080fd5b8060010160009054906101000a900460ff16156141675742816003015410151561416657600080fd5b5b8060010160009054906101000a900460ff16151561418d5761418882614484565b6141d1565b8060040160009054906101000a900460ff16156141b2576141ad82614993565b6141d0565b6141bb82614484565b8060020154600b600082825401925050819055505b5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff0219169055600282016000905560038201600090556004820160006101000a81549060ff021916905550505050565b826000813b905060008111151561426d57600080fd5b614278858585614c0d565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411156143eb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156143c457600080fd5b6102c65a03f115156143d557600080fd5b5050506040518051905015156143ea57600080fd5b5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff02191690556001820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160009055600382016000905550505050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492506144d78361359e565b91506144e284612898565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561457d57600080fd5b6102c65a03f1151561458e57600080fd5b505050604051805190501561468a576145a684613f04565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550828473ffffffffffffffffffffffffffffffffffffffff167fe5eb7319dd3f024d9f26b0714c4966136f6b7307d3345019df767d4cba3c74a660405160405180910390a3801515614685578373ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b614892565b6146938461427f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561479557600080fd5b6102c65a03f115156147a657600080fd5b5050506040518051905015156147bb57600080fd5b828473ffffffffffffffffffffffffffffffffffffffff167f5605aad1542ddbc8658ce502e0fe64c9566401dcb3041f6a9844a9d82195a27360405160405180910390a3801561484d578373ffffffffffffffffffffffffffffffffffffffff167feaff2f39998930238b3508c586198a5a51a4d53ea343ce57bbd1556c03256e9160405160405180910390a2614891565b8373ffffffffffffffffffffffffffffffffffffffff167f405517e310c96c410ba1acddffb912c6acc98afceb6449c0b8cef3459fb5de1060405160405180910390a25b5b600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561495957600080fd5b6102c65a03f1151561496a57600080fd5b505050604051805190506000808581526020019081526020016000206003018190555050505050565b600080600080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492508360020154614a2d8461359e565b019150614a3985612898565b9050614a4485613f04565b81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8cfa3f0846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515614b5b57600080fd5b6102c65a03f11515614b6c57600080fd5b50505060405180519050600080858152602001908152602001600020600301819055506001600d600085815260200190815260200160002060006101000a81548160ff021916908315150217905550801515614c06578473ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b5050505050565b6000614c1884612898565b151515614c2457600080fd5b614c2d84611fcf565b151515614c3957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614d0357600080fd5b6102c65a03f11515614d1457600080fd5b505050604051805190508310151515614d2c57600080fd5b42600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614df757600080fd5b6102c65a03f11515614e0857600080fd5b505050604051805190504201111515614e2057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050338160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515614fa557600080fd5b6102c65a03f11515614fb657600080fd5b505050604051805190501515614fcb57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561509557600080fd5b6102c65a03f115156150a657600080fd5b50505060405180519050420181600001819055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167f4620cb889f28e046fa2dc2a5a1f58d13dd1d89e30b4edbea3c66a6285719b94984846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015615143578082015181840152602081019050615128565b50505050905090810190601f1680156151705780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050505600a165627a7a723058202620e20cb53318ebbbc4d90717d2e168052a3f26f49cac663399d2a02be1623a0029", - "deployedBytecode": "0x606060405260043610610246576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301162b931461024b5780630bcbb5e51461028457806315586cf5146102ad578063186953a6146103105780631fcbdb7614610347578063200c7295146103945780632435766b146103d657806326c44aac146104115780632e7700d01461045e5780632ea9b696146104ab57806330d7dde4146104fc5780633770c25f14610533578063432261bb14610556578063463371a31461058f57806346904840146105b857806347e7ef241461060d57806354fd4d501461064f57806355246b9c146106785780635fd6722b146106fd57806361a9a8ca1461074e5780636477d07d1461079f5780636b244bae146108185780636eefcab91461084f578063706f0cb9146108a057806379110a47146108db5780637984e6b5146108fe5780637d3c5d01146109275780637fd57e0b1461096057806386bb8f37146109995780638fc36548146109c55780639dd2216b14610a12578063a5ba3b1e14610a63578063a7aad3db14610abd578063b2380e8f14610b1c578063bad7740e14610b69578063bc4b010f14610b8c578063c178521f14610c1c578063c8187cf114610c6d578063d229b61914610ca4578063d5fd9e6614610cb9578063dd4e7cfd14610d0e578063e1e3f91514610d5f578063e74b981b14610db4578063f3fef3a314610ded578063f81b164b14610e2f578063fa5f9eb414610e7c578063fc0c546a14610ea5578063fce1ccca14610efa575b600080fd5b341561025657600080fd5b610282600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f4f565b005b341561028f57600080fd5b61029761112e565b6040518082815260200191505060405180910390f35b34156102b857600080fd5b6102ce6004808035906020019091905050611134565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031b57600080fd5b6103316004808035906020019091905050611173565b6040518082815260200191505060405180910390f35b341561035257600080fd5b61037e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b341561039f57600080fd5b6103d4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b005b34156103e157600080fd5b6103f760048080359060200190919050506116c8565b604051808215151515815260200191505060405180910390f35b341561041c57600080fd5b610448600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116e8565b6040518082815260200191505060405180910390f35b341561046957600080fd5b610495600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611734565b6040518082815260200191505060405180910390f35b34156104b657600080fd5b6104e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611780565b604051808215151515815260200191505060405180910390f35b341561050757600080fd5b61051d6004808035906020019091905050611898565b6040518082815260200191505060405180910390f35b341561053e57600080fd5b61055460048080359060200190919050506118b7565b005b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611963565b005b341561059a57600080fd5b6105a2611c33565b6040518082815260200191505060405180910390f35b34156105c357600080fd5b6105cb611c39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061857600080fd5b61064d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c5f565b005b341561065a57600080fd5b610662611e98565b6040518082815260200191505060405180910390f35b341561068357600080fd5b6106fb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e9e565b005b341561070857600080fd5b610734600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f76565b604051808215151515815260200191505060405180910390f35b341561075957600080fd5b610785600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fcf565b604051808215151515815260200191505060405180910390f35b34156107aa57600080fd5b6107d6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061201d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082357600080fd5b6108396004808035906020019091905050612089565b6040518082815260200191505060405180910390f35b341561085a57600080fd5b610886600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120a8565b604051808215151515815260200191505060405180910390f35b34156108ab57600080fd5b6108c1600480803590602001909190505061216a565b604051808215151515815260200191505060405180910390f35b34156108e657600080fd5b6108fc6004808035906020019091905050612196565b005b341561090957600080fd5b610911612242565b6040518082815260200191505060405180910390f35b341561093257600080fd5b61095e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612248565b005b341561096b57600080fd5b610997600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061237b565b005b34156109a457600080fd5b6109c3600480803590602001909190803590602001909190505061247e565b005b34156109d057600080fd5b6109fc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061284c565b6040518082815260200191505060405180910390f35b3415610a1d57600080fd5b610a49600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612898565b604051808215151515815260200191505060405180910390f35b3415610a6e57600080fd5b610aa3600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128f1565b604051808215151515815260200191505060405180910390f35b3415610ac857600080fd5b610b06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061295b565b6040518082815260200191505060405180910390f35b3415610b2757600080fd5b610b53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ac9565b6040518082815260200191505060405180910390f35b3415610b7457600080fd5b610b8a6004808035906020019091905050612b15565b005b3415610b9757600080fd5b610c06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612bc1565b6040518082815260200191505060405180910390f35b3415610c2757600080fd5b610c53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613545565b604051808215151515815260200191505060405180910390f35b3415610c7857600080fd5b610c8e600480803590602001909190505061359e565b6040518082815260200191505060405180910390f35b3415610caf57600080fd5b610cb761379f565b005b3415610cc457600080fd5b610ccc613900565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d1957600080fd5b610d45600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613926565b604051808215151515815260200191505060405180910390f35b3415610d6a57600080fd5b610d72613a2c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dbf57600080fd5b610deb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a52565b005b3415610df857600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b55565b005b3415610e3a57600080fd5b610e66600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613e66565b6040518082815260200191505060405180910390f35b3415610e8757600080fd5b610e8f613eb2565b6040518082815260200191505060405180910390f35b3415610eb057600080fd5b610eb8613eb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610f0557600080fd5b610f0d613ede565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610fdd83613926565b1561103357610feb83613f04565b8273ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a2611129565b61103c83611780565b801561110b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318382600301546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b505050604051805190508061110a575060008260000154145b5b1561111e5761111983613f61565b611128565b611127836140d7565b5b5b505050565b600a5481565b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123d57600080fd5b61124684612898565b15151561125257600080fd5b61125b84611fcf565b15151561126757600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561133157600080fd5b6102c65a03f1151561134257600080fd5b50505060405180519050831015151561135a57600080fd5b839150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156113e157600080fd5b6102c65a03f115156113f257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415151561141f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561152057600080fd5b6102c65a03f1151561153157600080fd5b50505060405180519050151561154657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600001819055508173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156115fc57600080fd5b6102c65a03f1151561160d57600080fd5b505050604051805190508160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160010160006101000a81548160ff0219169083151502179055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167fc7ba65315d60c160dd17a515cc2c209493b01812439c4a3de6eed83adbd0147160405160405180910390a250505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506117d1836120a8565b15156117dc57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561187557600080fd5b6102c65a03f1151561188657600080fd5b50505060405180519050915050919050565b6000806000838152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191357600080fd5b60008111151561192257600080fd5b80600a819055507facfa781007712808522bc47b0dbc6d7aff970189f76b332ed8fe07b30c5e243a816040518082815260200191505060405180910390a150565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a4657600080fd5b428160000154111515611a5857600080fd5b8060010160009054906101000a900460ff16151515611a7657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306008546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611b7957600080fd5b6102c65a03f11515611b8a57600080fd5b505050604051805190501515611b9f57600080fd5b60018160010160006101000a81548160ff0219169083151502179055506008548160020181905550600a54420181600301819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f11435de103cf37f78c58ddfa8dc649e42817a1fa6c17c9e0193aa98609d1529c60405160405180910390a3505050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d0057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611e0157600080fd5b6102c65a03f11515611e1257600080fd5b505050604051805190501515611e2757600080fd5b8181600201600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15838360020154604051808381526020018281526020019250505060405180910390a2505050565b60055481565b8260008190503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611f2757600080fd5b6102c65a03f11515611f3857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515611f6457600080fd5b611f6f858585614257565b5050505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff169050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154118015612162575060008082815260200190815260200160002060010160149054906101000a900460ff16155b915050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121f257600080fd5b60008111151561220157600080fd5b806008819055507ff6374eb73c33cf2a75b7d060f0c97c0ff6efcec0e8844b1746e73034ec9699d0816040518082815260200191505060405180910390a150565b60085481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122a657600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600301541115156122f957600080fd5b8060040160009054906101000a900460ff1615151561231757600080fd5b60018160040160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f25f5ea68e34f6d6918854432015e5286b3b35476963d7aebf37fbe7f95983c5d60405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561241c57600080fd5b61242582612898565b151561243057600080fd5b60008160030154148061246657506000808260030154815260200190815260200160002060010160149054906101000a900460ff165b151561247157600080fd5b61247a8261427f565b5050565b6000806000151560008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156124f357600080fd5b6001151560008086815260200190815260200160002060010160149054906101000a900460ff16151514151561252857600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600d60008a815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b151561262957600080fd5b6102c65a03f1151561263a57600080fd5b50505060405180519050915061265133858561295b565b905081600080868152602001908152602001600020600301600082825403925050819055508060008086815260200190815260200160002060000160008282540392505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561276657600080fd5b6102c65a03f1151561277757600080fd5b50505060405180519050151561278c57600080fd5b600160008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e2731743836040518082815260200191505060405180910390a350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600084815260200190815260200160002060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080600080600080878152602001908152602001600020600301549250600080878152602001908152602001600020600001549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600d60008c815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515612a9257600080fd5b6102c65a03f11515612aa357600080fd5b50505060405180519050905082828202811515612abc57fe5b0493505050509392505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7157600080fd5b600081111515612b8057600080fd5b806009819055507f2c2c75d02a201fbf3127fb9b341df2d73db49e6b29860bd720fdec66f99e16fe816040518082815260200191505060405180910390a150565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612cd257600080fd5b6102c65a03f11515612ce357600080fd5b505050604051805190509150612cf886611fcf565b80612d1157508260010160009054906101000a900460ff165b1515612d1c57600080fd5b600083600301541480612d5257506000808460030154815260200190815260200160002060010160149054906101000a900460ff165b1515612d5d57600080fd5b8183600201541015612d7b57612d728661427f565b6000935061353c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e7c57600080fd5b6102c65a03f11515612e8d57600080fd5b505050604051805190501515612ea257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d60600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f766f746551756f72756d00000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612faa57600080fd5b6102c65a03f11515612fbb57600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f636f6d6d697453746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561308f57600080fd5b6102c65a03f115156130a057600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f72657665616c53746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561317457600080fd5b6102c65a03f1151561318557600080fd5b505050604051805190506000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b15156131f757600080fd5b6102c65a03f1151561320857600080fd5b50505060405180519050905060a060405190810160405280606484600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600f8152602001807f64697370656e736174696f6e5063740000000000000000000000000000000000815250602001915050602060405180830381600087803b15156132ed57600080fd5b6102c65a03f115156132fe57600080fd5b505050604051805190506064030281151561331557fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200183815260200160008152506000808381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015590505080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540392505081905550808673ffffffffffffffffffffffffffffffffffffffff167fba4fed76bf6f631503eec96cf182e07300945e578c5abd54d73d9794448de9a484886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156134fd5780820151818401526020810190506134e2565b50505050905090810190601f16801561352a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38093505b50505092915050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff161580156136805750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561366457600080fd5b6102c65a03f1151561367557600080fd5b505050604051805190505b151561368b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561372657600080fd5b6102c65a03f1151561373757600080fd5b5050506040518051905014156137675760008083815260200190815260200160002060020154600202905061379a565b60008083815260200190815260200160002060000154600080848152602001908152602001600020600201546002020390505b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137fd57600080fd5b600b5490506000600b81905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156138d757600080fd5b6102c65a03f115156138e857600080fd5b5050506040518051905015156138fd57600080fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061397783611fcf565b80156139c4575042600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154105b80156139d657506139d483612898565b155b8015613a1357506000811480613a1257506001151560008083815260200190815260200160002060010160149054906101000a900460ff161515145b5b15613a215760019150613a26565b600091505b50919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613aae57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf9a9534339a9d6b81696e05dcfb614b7dc518a31d48be3cfb757988381fb32381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613bf657600080fd5b80600201548211151515613c0957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805190508282600201540310151515613d0257600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613dcf57600080fd5b6102c65a03f11515613de057600080fd5b505050604051805190501515613df557600080fd5b8181600201600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb838360020154604051808381526020018281526020019250505060405180910390a2505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561404257600080fd5b6102c65a03f1151561405357600080fd5b50505060405180519050156140705761406b83614484565b6140d2565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415156140c457600080fd5b600954420181600001819055505b505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141580156141325750806000015442115b151561413d57600080fd5b8060010160009054906101000a900460ff16156141675742816003015410151561416657600080fd5b5b8060010160009054906101000a900460ff16151561418d5761418882614484565b6141d1565b8060040160009054906101000a900460ff16156141b2576141ad82614993565b6141d0565b6141bb82614484565b8060020154600b600082825401925050819055505b5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff0219169055600282016000905560038201600090556004820160006101000a81549060ff021916905550505050565b826000813b905060008111151561426d57600080fd5b614278858585614c0d565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411156143eb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156143c457600080fd5b6102c65a03f115156143d557600080fd5b5050506040518051905015156143ea57600080fd5b5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff02191690556001820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160009055600382016000905550505050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492506144d78361359e565b91506144e284612898565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561457d57600080fd5b6102c65a03f1151561458e57600080fd5b505050604051805190501561468a576145a684613f04565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550828473ffffffffffffffffffffffffffffffffffffffff167fe5eb7319dd3f024d9f26b0714c4966136f6b7307d3345019df767d4cba3c74a660405160405180910390a3801515614685578373ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b614892565b6146938461427f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561479557600080fd5b6102c65a03f115156147a657600080fd5b5050506040518051905015156147bb57600080fd5b828473ffffffffffffffffffffffffffffffffffffffff167f5605aad1542ddbc8658ce502e0fe64c9566401dcb3041f6a9844a9d82195a27360405160405180910390a3801561484d578373ffffffffffffffffffffffffffffffffffffffff167feaff2f39998930238b3508c586198a5a51a4d53ea343ce57bbd1556c03256e9160405160405180910390a2614891565b8373ffffffffffffffffffffffffffffffffffffffff167f405517e310c96c410ba1acddffb912c6acc98afceb6449c0b8cef3459fb5de1060405160405180910390a25b5b600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561495957600080fd5b6102c65a03f1151561496a57600080fd5b505050604051805190506000808581526020019081526020016000206003018190555050505050565b600080600080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492508360020154614a2d8461359e565b019150614a3985612898565b9050614a4485613f04565b81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8cfa3f0846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515614b5b57600080fd5b6102c65a03f11515614b6c57600080fd5b50505060405180519050600080858152602001908152602001600020600301819055506001600d600085815260200190815260200160002060006101000a81548160ff021916908315150217905550801515614c06578473ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b5050505050565b6000614c1884612898565b151515614c2457600080fd5b614c2d84611fcf565b151515614c3957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614d0357600080fd5b6102c65a03f11515614d1457600080fd5b505050604051805190508310151515614d2c57600080fd5b42600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614df757600080fd5b6102c65a03f11515614e0857600080fd5b505050604051805190504201111515614e2057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050338160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515614fa557600080fd5b6102c65a03f11515614fb657600080fd5b505050604051805190501515614fcb57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561509557600080fd5b6102c65a03f115156150a657600080fd5b50505060405180519050420181600001819055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167f4620cb889f28e046fa2dc2a5a1f58d13dd1d89e30b4edbea3c66a6285719b94984846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015615143578082015181840152602081019050615128565b50505050905090810190601f1680156151705780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050505600a165627a7a723058202620e20cb53318ebbbc4d90717d2e168052a3f26f49cac663399d2a02be1623a0029", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "judgeAppealPhaseLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "name": "getChallengeChallenger", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "name": "getChallengeStake", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getListingApplicationExpiry", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "challengesOverturned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "challengeCanBeResolved", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "name": "getChallengeTotalTokens", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "contractName": "OwnedAddressTCRWithAppeals", + "bytecode": + "0x606060405260016005556203f48060095562127500600a55341561002257600080fd5b60405160a08061537d8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190505084848482828282828282600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050506151b0806101cd6000396000f300606060405260043610610246576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301162b931461024b5780630bcbb5e51461028457806315586cf5146102ad578063186953a6146103105780631fcbdb7614610347578063200c7295146103945780632435766b146103d657806326c44aac146104115780632e7700d01461045e5780632ea9b696146104ab57806330d7dde4146104fc5780633770c25f14610533578063432261bb14610556578063463371a31461058f57806346904840146105b857806347e7ef241461060d57806354fd4d501461064f57806355246b9c146106785780635fd6722b146106fd57806361a9a8ca1461074e5780636477d07d1461079f5780636b244bae146108185780636eefcab91461084f578063706f0cb9146108a057806379110a47146108db5780637984e6b5146108fe5780637d3c5d01146109275780637fd57e0b1461096057806386bb8f37146109995780638fc36548146109c55780639dd2216b14610a12578063a5ba3b1e14610a63578063a7aad3db14610abd578063b2380e8f14610b1c578063bad7740e14610b69578063bc4b010f14610b8c578063c178521f14610c1c578063c8187cf114610c6d578063d229b61914610ca4578063d5fd9e6614610cb9578063dd4e7cfd14610d0e578063e1e3f91514610d5f578063e74b981b14610db4578063f3fef3a314610ded578063f81b164b14610e2f578063fa5f9eb414610e7c578063fc0c546a14610ea5578063fce1ccca14610efa575b600080fd5b341561025657600080fd5b610282600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f4f565b005b341561028f57600080fd5b61029761112e565b6040518082815260200191505060405180910390f35b34156102b857600080fd5b6102ce6004808035906020019091905050611134565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031b57600080fd5b6103316004808035906020019091905050611173565b6040518082815260200191505060405180910390f35b341561035257600080fd5b61037e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b341561039f57600080fd5b6103d4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b005b34156103e157600080fd5b6103f760048080359060200190919050506116c8565b604051808215151515815260200191505060405180910390f35b341561041c57600080fd5b610448600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116e8565b6040518082815260200191505060405180910390f35b341561046957600080fd5b610495600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611734565b6040518082815260200191505060405180910390f35b34156104b657600080fd5b6104e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611780565b604051808215151515815260200191505060405180910390f35b341561050757600080fd5b61051d6004808035906020019091905050611898565b6040518082815260200191505060405180910390f35b341561053e57600080fd5b61055460048080359060200190919050506118b7565b005b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611963565b005b341561059a57600080fd5b6105a2611c33565b6040518082815260200191505060405180910390f35b34156105c357600080fd5b6105cb611c39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061857600080fd5b61064d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c5f565b005b341561065a57600080fd5b610662611e98565b6040518082815260200191505060405180910390f35b341561068357600080fd5b6106fb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e9e565b005b341561070857600080fd5b610734600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f76565b604051808215151515815260200191505060405180910390f35b341561075957600080fd5b610785600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fcf565b604051808215151515815260200191505060405180910390f35b34156107aa57600080fd5b6107d6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061201d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082357600080fd5b6108396004808035906020019091905050612089565b6040518082815260200191505060405180910390f35b341561085a57600080fd5b610886600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120a8565b604051808215151515815260200191505060405180910390f35b34156108ab57600080fd5b6108c1600480803590602001909190505061216a565b604051808215151515815260200191505060405180910390f35b34156108e657600080fd5b6108fc6004808035906020019091905050612196565b005b341561090957600080fd5b610911612242565b6040518082815260200191505060405180910390f35b341561093257600080fd5b61095e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612248565b005b341561096b57600080fd5b610997600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061237b565b005b34156109a457600080fd5b6109c3600480803590602001909190803590602001909190505061247e565b005b34156109d057600080fd5b6109fc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061284c565b6040518082815260200191505060405180910390f35b3415610a1d57600080fd5b610a49600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612898565b604051808215151515815260200191505060405180910390f35b3415610a6e57600080fd5b610aa3600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128f1565b604051808215151515815260200191505060405180910390f35b3415610ac857600080fd5b610b06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061295b565b6040518082815260200191505060405180910390f35b3415610b2757600080fd5b610b53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ac9565b6040518082815260200191505060405180910390f35b3415610b7457600080fd5b610b8a6004808035906020019091905050612b15565b005b3415610b9757600080fd5b610c06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612bc1565b6040518082815260200191505060405180910390f35b3415610c2757600080fd5b610c53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613545565b604051808215151515815260200191505060405180910390f35b3415610c7857600080fd5b610c8e600480803590602001909190505061359e565b6040518082815260200191505060405180910390f35b3415610caf57600080fd5b610cb761379f565b005b3415610cc457600080fd5b610ccc613900565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d1957600080fd5b610d45600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613926565b604051808215151515815260200191505060405180910390f35b3415610d6a57600080fd5b610d72613a2c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dbf57600080fd5b610deb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a52565b005b3415610df857600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b55565b005b3415610e3a57600080fd5b610e66600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613e66565b6040518082815260200191505060405180910390f35b3415610e8757600080fd5b610e8f613eb2565b6040518082815260200191505060405180910390f35b3415610eb057600080fd5b610eb8613eb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610f0557600080fd5b610f0d613ede565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610fdd83613926565b1561103357610feb83613f04565b8273ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a2611129565b61103c83611780565b801561110b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318382600301546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b505050604051805190508061110a575060008260000154145b5b1561111e5761111983613f61565b611128565b611127836140d7565b5b5b505050565b600a5481565b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123d57600080fd5b61124684612898565b15151561125257600080fd5b61125b84611fcf565b15151561126757600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561133157600080fd5b6102c65a03f1151561134257600080fd5b50505060405180519050831015151561135a57600080fd5b839150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156113e157600080fd5b6102c65a03f115156113f257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415151561141f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561152057600080fd5b6102c65a03f1151561153157600080fd5b50505060405180519050151561154657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600001819055508173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156115fc57600080fd5b6102c65a03f1151561160d57600080fd5b505050604051805190508160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160010160006101000a81548160ff0219169083151502179055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167fc7ba65315d60c160dd17a515cc2c209493b01812439c4a3de6eed83adbd0147160405160405180910390a250505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506117d1836120a8565b15156117dc57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561187557600080fd5b6102c65a03f1151561188657600080fd5b50505060405180519050915050919050565b6000806000838152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191357600080fd5b60008111151561192257600080fd5b80600a819055507facfa781007712808522bc47b0dbc6d7aff970189f76b332ed8fe07b30c5e243a816040518082815260200191505060405180910390a150565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a4657600080fd5b428160000154111515611a5857600080fd5b8060010160009054906101000a900460ff16151515611a7657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306008546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611b7957600080fd5b6102c65a03f11515611b8a57600080fd5b505050604051805190501515611b9f57600080fd5b60018160010160006101000a81548160ff0219169083151502179055506008548160020181905550600a54420181600301819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f11435de103cf37f78c58ddfa8dc649e42817a1fa6c17c9e0193aa98609d1529c60405160405180910390a3505050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d0057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611e0157600080fd5b6102c65a03f11515611e1257600080fd5b505050604051805190501515611e2757600080fd5b8181600201600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15838360020154604051808381526020018281526020019250505060405180910390a2505050565b60055481565b8260008190503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611f2757600080fd5b6102c65a03f11515611f3857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515611f6457600080fd5b611f6f858585614257565b5050505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff169050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154118015612162575060008082815260200190815260200160002060010160149054906101000a900460ff16155b915050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121f257600080fd5b60008111151561220157600080fd5b806008819055507ff6374eb73c33cf2a75b7d060f0c97c0ff6efcec0e8844b1746e73034ec9699d0816040518082815260200191505060405180910390a150565b60085481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122a657600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600301541115156122f957600080fd5b8060040160009054906101000a900460ff1615151561231757600080fd5b60018160040160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f25f5ea68e34f6d6918854432015e5286b3b35476963d7aebf37fbe7f95983c5d60405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561241c57600080fd5b61242582612898565b151561243057600080fd5b60008160030154148061246657506000808260030154815260200190815260200160002060010160149054906101000a900460ff165b151561247157600080fd5b61247a8261427f565b5050565b6000806000151560008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156124f357600080fd5b6001151560008086815260200190815260200160002060010160149054906101000a900460ff16151514151561252857600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600d60008a815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b151561262957600080fd5b6102c65a03f1151561263a57600080fd5b50505060405180519050915061265133858561295b565b905081600080868152602001908152602001600020600301600082825403925050819055508060008086815260200190815260200160002060000160008282540392505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561276657600080fd5b6102c65a03f1151561277757600080fd5b50505060405180519050151561278c57600080fd5b600160008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e2731743836040518082815260200191505060405180910390a350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600084815260200190815260200160002060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080600080600080878152602001908152602001600020600301549250600080878152602001908152602001600020600001549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600d60008c815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515612a9257600080fd5b6102c65a03f11515612aa357600080fd5b50505060405180519050905082828202811515612abc57fe5b0493505050509392505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7157600080fd5b600081111515612b8057600080fd5b806009819055507f2c2c75d02a201fbf3127fb9b341df2d73db49e6b29860bd720fdec66f99e16fe816040518082815260200191505060405180910390a150565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612cd257600080fd5b6102c65a03f11515612ce357600080fd5b505050604051805190509150612cf886611fcf565b80612d1157508260010160009054906101000a900460ff165b1515612d1c57600080fd5b600083600301541480612d5257506000808460030154815260200190815260200160002060010160149054906101000a900460ff165b1515612d5d57600080fd5b8183600201541015612d7b57612d728661427f565b6000935061353c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e7c57600080fd5b6102c65a03f11515612e8d57600080fd5b505050604051805190501515612ea257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d60600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f766f746551756f72756d00000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612faa57600080fd5b6102c65a03f11515612fbb57600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f636f6d6d697453746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561308f57600080fd5b6102c65a03f115156130a057600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f72657665616c53746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561317457600080fd5b6102c65a03f1151561318557600080fd5b505050604051805190506000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b15156131f757600080fd5b6102c65a03f1151561320857600080fd5b50505060405180519050905060a060405190810160405280606484600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600f8152602001807f64697370656e736174696f6e5063740000000000000000000000000000000000815250602001915050602060405180830381600087803b15156132ed57600080fd5b6102c65a03f115156132fe57600080fd5b505050604051805190506064030281151561331557fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200183815260200160008152506000808381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015590505080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540392505081905550808673ffffffffffffffffffffffffffffffffffffffff167fba4fed76bf6f631503eec96cf182e07300945e578c5abd54d73d9794448de9a484886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156134fd5780820151818401526020810190506134e2565b50505050905090810190601f16801561352a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38093505b50505092915050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff161580156136805750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561366457600080fd5b6102c65a03f1151561367557600080fd5b505050604051805190505b151561368b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561372657600080fd5b6102c65a03f1151561373757600080fd5b5050506040518051905014156137675760008083815260200190815260200160002060020154600202905061379a565b60008083815260200190815260200160002060000154600080848152602001908152602001600020600201546002020390505b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137fd57600080fd5b600b5490506000600b81905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156138d757600080fd5b6102c65a03f115156138e857600080fd5b5050506040518051905015156138fd57600080fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061397783611fcf565b80156139c4575042600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154105b80156139d657506139d483612898565b155b8015613a1357506000811480613a1257506001151560008083815260200190815260200160002060010160149054906101000a900460ff161515145b5b15613a215760019150613a26565b600091505b50919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613aae57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf9a9534339a9d6b81696e05dcfb614b7dc518a31d48be3cfb757988381fb32381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613bf657600080fd5b80600201548211151515613c0957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805190508282600201540310151515613d0257600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613dcf57600080fd5b6102c65a03f11515613de057600080fd5b505050604051805190501515613df557600080fd5b8181600201600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb838360020154604051808381526020018281526020019250505060405180910390a2505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561404257600080fd5b6102c65a03f1151561405357600080fd5b50505060405180519050156140705761406b83614484565b6140d2565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415156140c457600080fd5b600954420181600001819055505b505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141580156141325750806000015442115b151561413d57600080fd5b8060010160009054906101000a900460ff16156141675742816003015410151561416657600080fd5b5b8060010160009054906101000a900460ff16151561418d5761418882614484565b6141d1565b8060040160009054906101000a900460ff16156141b2576141ad82614993565b6141d0565b6141bb82614484565b8060020154600b600082825401925050819055505b5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff0219169055600282016000905560038201600090556004820160006101000a81549060ff021916905550505050565b826000813b905060008111151561426d57600080fd5b614278858585614c0d565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411156143eb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156143c457600080fd5b6102c65a03f115156143d557600080fd5b5050506040518051905015156143ea57600080fd5b5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff02191690556001820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160009055600382016000905550505050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492506144d78361359e565b91506144e284612898565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561457d57600080fd5b6102c65a03f1151561458e57600080fd5b505050604051805190501561468a576145a684613f04565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550828473ffffffffffffffffffffffffffffffffffffffff167fe5eb7319dd3f024d9f26b0714c4966136f6b7307d3345019df767d4cba3c74a660405160405180910390a3801515614685578373ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b614892565b6146938461427f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561479557600080fd5b6102c65a03f115156147a657600080fd5b5050506040518051905015156147bb57600080fd5b828473ffffffffffffffffffffffffffffffffffffffff167f5605aad1542ddbc8658ce502e0fe64c9566401dcb3041f6a9844a9d82195a27360405160405180910390a3801561484d578373ffffffffffffffffffffffffffffffffffffffff167feaff2f39998930238b3508c586198a5a51a4d53ea343ce57bbd1556c03256e9160405160405180910390a2614891565b8373ffffffffffffffffffffffffffffffffffffffff167f405517e310c96c410ba1acddffb912c6acc98afceb6449c0b8cef3459fb5de1060405160405180910390a25b5b600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561495957600080fd5b6102c65a03f1151561496a57600080fd5b505050604051805190506000808581526020019081526020016000206003018190555050505050565b600080600080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492508360020154614a2d8461359e565b019150614a3985612898565b9050614a4485613f04565b81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8cfa3f0846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515614b5b57600080fd5b6102c65a03f11515614b6c57600080fd5b50505060405180519050600080858152602001908152602001600020600301819055506001600d600085815260200190815260200160002060006101000a81548160ff021916908315150217905550801515614c06578473ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b5050505050565b6000614c1884612898565b151515614c2457600080fd5b614c2d84611fcf565b151515614c3957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614d0357600080fd5b6102c65a03f11515614d1457600080fd5b505050604051805190508310151515614d2c57600080fd5b42600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614df757600080fd5b6102c65a03f11515614e0857600080fd5b505050604051805190504201111515614e2057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050338160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515614fa557600080fd5b6102c65a03f11515614fb657600080fd5b505050604051805190501515614fcb57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561509557600080fd5b6102c65a03f115156150a657600080fd5b50505060405180519050420181600001819055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167f4620cb889f28e046fa2dc2a5a1f58d13dd1d89e30b4edbea3c66a6285719b94984846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015615143578082015181840152602081019050615128565b50505050905090810190601f1680156151705780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050505600a165627a7a723058202620e20cb53318ebbbc4d90717d2e168052a3f26f49cac663399d2a02be1623a0029", + "deployedBytecode": + "0x606060405260043610610246576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301162b931461024b5780630bcbb5e51461028457806315586cf5146102ad578063186953a6146103105780631fcbdb7614610347578063200c7295146103945780632435766b146103d657806326c44aac146104115780632e7700d01461045e5780632ea9b696146104ab57806330d7dde4146104fc5780633770c25f14610533578063432261bb14610556578063463371a31461058f57806346904840146105b857806347e7ef241461060d57806354fd4d501461064f57806355246b9c146106785780635fd6722b146106fd57806361a9a8ca1461074e5780636477d07d1461079f5780636b244bae146108185780636eefcab91461084f578063706f0cb9146108a057806379110a47146108db5780637984e6b5146108fe5780637d3c5d01146109275780637fd57e0b1461096057806386bb8f37146109995780638fc36548146109c55780639dd2216b14610a12578063a5ba3b1e14610a63578063a7aad3db14610abd578063b2380e8f14610b1c578063bad7740e14610b69578063bc4b010f14610b8c578063c178521f14610c1c578063c8187cf114610c6d578063d229b61914610ca4578063d5fd9e6614610cb9578063dd4e7cfd14610d0e578063e1e3f91514610d5f578063e74b981b14610db4578063f3fef3a314610ded578063f81b164b14610e2f578063fa5f9eb414610e7c578063fc0c546a14610ea5578063fce1ccca14610efa575b600080fd5b341561025657600080fd5b610282600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f4f565b005b341561028f57600080fd5b61029761112e565b6040518082815260200191505060405180910390f35b34156102b857600080fd5b6102ce6004808035906020019091905050611134565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031b57600080fd5b6103316004808035906020019091905050611173565b6040518082815260200191505060405180910390f35b341561035257600080fd5b61037e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b341561039f57600080fd5b6103d4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b005b34156103e157600080fd5b6103f760048080359060200190919050506116c8565b604051808215151515815260200191505060405180910390f35b341561041c57600080fd5b610448600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116e8565b6040518082815260200191505060405180910390f35b341561046957600080fd5b610495600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611734565b6040518082815260200191505060405180910390f35b34156104b657600080fd5b6104e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611780565b604051808215151515815260200191505060405180910390f35b341561050757600080fd5b61051d6004808035906020019091905050611898565b6040518082815260200191505060405180910390f35b341561053e57600080fd5b61055460048080359060200190919050506118b7565b005b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611963565b005b341561059a57600080fd5b6105a2611c33565b6040518082815260200191505060405180910390f35b34156105c357600080fd5b6105cb611c39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061857600080fd5b61064d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c5f565b005b341561065a57600080fd5b610662611e98565b6040518082815260200191505060405180910390f35b341561068357600080fd5b6106fb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e9e565b005b341561070857600080fd5b610734600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f76565b604051808215151515815260200191505060405180910390f35b341561075957600080fd5b610785600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fcf565b604051808215151515815260200191505060405180910390f35b34156107aa57600080fd5b6107d6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061201d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082357600080fd5b6108396004808035906020019091905050612089565b6040518082815260200191505060405180910390f35b341561085a57600080fd5b610886600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120a8565b604051808215151515815260200191505060405180910390f35b34156108ab57600080fd5b6108c1600480803590602001909190505061216a565b604051808215151515815260200191505060405180910390f35b34156108e657600080fd5b6108fc6004808035906020019091905050612196565b005b341561090957600080fd5b610911612242565b6040518082815260200191505060405180910390f35b341561093257600080fd5b61095e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612248565b005b341561096b57600080fd5b610997600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061237b565b005b34156109a457600080fd5b6109c3600480803590602001909190803590602001909190505061247e565b005b34156109d057600080fd5b6109fc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061284c565b6040518082815260200191505060405180910390f35b3415610a1d57600080fd5b610a49600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612898565b604051808215151515815260200191505060405180910390f35b3415610a6e57600080fd5b610aa3600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128f1565b604051808215151515815260200191505060405180910390f35b3415610ac857600080fd5b610b06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061295b565b6040518082815260200191505060405180910390f35b3415610b2757600080fd5b610b53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ac9565b6040518082815260200191505060405180910390f35b3415610b7457600080fd5b610b8a6004808035906020019091905050612b15565b005b3415610b9757600080fd5b610c06600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612bc1565b6040518082815260200191505060405180910390f35b3415610c2757600080fd5b610c53600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613545565b604051808215151515815260200191505060405180910390f35b3415610c7857600080fd5b610c8e600480803590602001909190505061359e565b6040518082815260200191505060405180910390f35b3415610caf57600080fd5b610cb761379f565b005b3415610cc457600080fd5b610ccc613900565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d1957600080fd5b610d45600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613926565b604051808215151515815260200191505060405180910390f35b3415610d6a57600080fd5b610d72613a2c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dbf57600080fd5b610deb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a52565b005b3415610df857600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b55565b005b3415610e3a57600080fd5b610e66600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613e66565b6040518082815260200191505060405180910390f35b3415610e8757600080fd5b610e8f613eb2565b6040518082815260200191505060405180910390f35b3415610eb057600080fd5b610eb8613eb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610f0557600080fd5b610f0d613ede565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610fdd83613926565b1561103357610feb83613f04565b8273ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a2611129565b61103c83611780565b801561110b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318382600301546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b505050604051805190508061110a575060008260000154145b5b1561111e5761111983613f61565b611128565b611127836140d7565b5b5b505050565b600a5481565b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123d57600080fd5b61124684612898565b15151561125257600080fd5b61125b84611fcf565b15151561126757600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561133157600080fd5b6102c65a03f1151561134257600080fd5b50505060405180519050831015151561135a57600080fd5b839150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156113e157600080fd5b6102c65a03f115156113f257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415151561141f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561152057600080fd5b6102c65a03f1151561153157600080fd5b50505060405180519050151561154657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600001819055508173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156115fc57600080fd5b6102c65a03f1151561160d57600080fd5b505050604051805190508160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160010160006101000a81548160ff0219169083151502179055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167fc7ba65315d60c160dd17a515cc2c209493b01812439c4a3de6eed83adbd0147160405160405180910390a250505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506117d1836120a8565b15156117dc57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561187557600080fd5b6102c65a03f1151561188657600080fd5b50505060405180519050915050919050565b6000806000838152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191357600080fd5b60008111151561192257600080fd5b80600a819055507facfa781007712808522bc47b0dbc6d7aff970189f76b332ed8fe07b30c5e243a816040518082815260200191505060405180910390a150565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a4657600080fd5b428160000154111515611a5857600080fd5b8060010160009054906101000a900460ff16151515611a7657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306008546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611b7957600080fd5b6102c65a03f11515611b8a57600080fd5b505050604051805190501515611b9f57600080fd5b60018160010160006101000a81548160ff0219169083151502179055506008548160020181905550600a54420181600301819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f11435de103cf37f78c58ddfa8dc649e42817a1fa6c17c9e0193aa98609d1529c60405160405180910390a3505050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d0057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611e0157600080fd5b6102c65a03f11515611e1257600080fd5b505050604051805190501515611e2757600080fd5b8181600201600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15838360020154604051808381526020018281526020019250505060405180910390a2505050565b60055481565b8260008190503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611f2757600080fd5b6102c65a03f11515611f3857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515611f6457600080fd5b611f6f858585614257565b5050505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff169050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000838152602001908152602001600020600001549050919050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154118015612162575060008082815260200190815260200160002060010160149054906101000a900460ff16155b915050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121f257600080fd5b60008111151561220157600080fd5b806008819055507ff6374eb73c33cf2a75b7d060f0c97c0ff6efcec0e8844b1746e73034ec9699d0816040518082815260200191505060405180910390a150565b60085481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122a657600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600301541115156122f957600080fd5b8060040160009054906101000a900460ff1615151561231757600080fd5b60018160040160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f25f5ea68e34f6d6918854432015e5286b3b35476963d7aebf37fbe7f95983c5d60405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561241c57600080fd5b61242582612898565b151561243057600080fd5b60008160030154148061246657506000808260030154815260200190815260200160002060010160149054906101000a900460ff165b151561247157600080fd5b61247a8261427f565b5050565b6000806000151560008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156124f357600080fd5b6001151560008086815260200190815260200160002060010160149054906101000a900460ff16151514151561252857600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600d60008a815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b151561262957600080fd5b6102c65a03f1151561263a57600080fd5b50505060405180519050915061265133858561295b565b905081600080868152602001908152602001600020600301600082825403925050819055508060008086815260200190815260200160002060000160008282540392505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561276657600080fd5b6102c65a03f1151561277757600080fd5b50505060405180519050151561278c57600080fd5b600160008086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e2731743836040518082815260200191505060405180910390a350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600084815260200190815260200160002060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080600080600080878152602001908152602001600020600301549250600080878152602001908152602001600020600001549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600d60008c815260200190815260200160002060009054906101000a900460ff166000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515612a9257600080fd5b6102c65a03f11515612aa357600080fd5b50505060405180519050905082828202811515612abc57fe5b0493505050509392505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7157600080fd5b600081111515612b8057600080fd5b806009819055507f2c2c75d02a201fbf3127fb9b341df2d73db49e6b29860bd720fdec66f99e16fe816040518082815260200191505060405180910390a150565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612cd257600080fd5b6102c65a03f11515612ce357600080fd5b505050604051805190509150612cf886611fcf565b80612d1157508260010160009054906101000a900460ff165b1515612d1c57600080fd5b600083600301541480612d5257506000808460030154815260200190815260200160002060010160149054906101000a900460ff165b1515612d5d57600080fd5b8183600201541015612d7b57612d728661427f565b6000935061353c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e7c57600080fd5b6102c65a03f11515612e8d57600080fd5b505050604051805190501515612ea257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d60600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f766f746551756f72756d00000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515612faa57600080fd5b6102c65a03f11515612fbb57600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f636f6d6d697453746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561308f57600080fd5b6102c65a03f115156130a057600080fd5b50505060405180519050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600e8152602001807f72657665616c53746167654c656e000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561317457600080fd5b6102c65a03f1151561318557600080fd5b505050604051805190506000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b15156131f757600080fd5b6102c65a03f1151561320857600080fd5b50505060405180519050905060a060405190810160405280606484600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600f8152602001807f64697370656e736174696f6e5063740000000000000000000000000000000000815250602001915050602060405180830381600087803b15156132ed57600080fd5b6102c65a03f115156132fe57600080fd5b505050604051805190506064030281151561331557fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200183815260200160008152506000808381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908315150217905550606082015181600201556080820151816003015590505080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540392505081905550808673ffffffffffffffffffffffffffffffffffffffff167fba4fed76bf6f631503eec96cf182e07300945e578c5abd54d73d9794448de9a484886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156134fd5780820151818401526020810190506134e2565b50505050905090810190601f16801561352a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38093505b50505092915050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b600080600083815260200190815260200160002060010160149054906101000a900460ff161580156136805750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee684830836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561366457600080fd5b6102c65a03f1151561367557600080fd5b505050604051805190505b151561368b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561372657600080fd5b6102c65a03f1151561373757600080fd5b5050506040518051905014156137675760008083815260200190815260200160002060020154600202905061379a565b60008083815260200190815260200160002060000154600080848152602001908152602001600020600201546002020390505b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137fd57600080fd5b600b5490506000600b81905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156138d757600080fd5b6102c65a03f115156138e857600080fd5b5050506040518051905015156138fd57600080fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061397783611fcf565b80156139c4575042600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154105b80156139d657506139d483612898565b155b8015613a1357506000811480613a1257506001151560008083815260200190815260200160002060010160149054906101000a900460ff161515145b5b15613a215760019150613a26565b600091505b50919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613aae57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf9a9534339a9d6b81696e05dcfb614b7dc518a31d48be3cfb757988381fb32381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613bf657600080fd5b80600201548211151515613c0957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515613cd357600080fd5b6102c65a03f11515613ce457600080fd5b505050604051805190508282600201540310151515613d0257600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613dcf57600080fd5b6102c65a03f11515613de057600080fd5b505050604051805190501515613df557600080fd5b8181600201600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb838360020154604051808381526020018281526020019250505060405180910390a2505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561404257600080fd5b6102c65a03f1151561405357600080fd5b50505060405180519050156140705761406b83614484565b6140d2565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415156140c457600080fd5b600954420181600001819055505b505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141580156141325750806000015442115b151561413d57600080fd5b8060010160009054906101000a900460ff16156141675742816003015410151561416657600080fd5b5b8060010160009054906101000a900460ff16151561418d5761418882614484565b6141d1565b8060040160009054906101000a900460ff16156141b2576141ad82614993565b6141d0565b6141bb82614484565b8060020154600b600082825401925050819055505b5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff0219169055600282016000905560038201600090556004820160006101000a81549060ff021916905550505050565b826000813b905060008111151561426d57600080fd5b614278858585614c0d565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411156143eb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156143c457600080fd5b6102c65a03f115156143d557600080fd5b5050506040518051905015156143ea57600080fd5b5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff02191690556001820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160009055600382016000905550505050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492506144d78361359e565b91506144e284612898565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349403183846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561457d57600080fd5b6102c65a03f1151561458e57600080fd5b505050604051805190501561468a576145a684613f04565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550828473ffffffffffffffffffffffffffffffffffffffff167fe5eb7319dd3f024d9f26b0714c4966136f6b7307d3345019df767d4cba3c74a660405160405180910390a3801515614685578373ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b614892565b6146938461427f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561479557600080fd5b6102c65a03f115156147a657600080fd5b5050506040518051905015156147bb57600080fd5b828473ffffffffffffffffffffffffffffffffffffffff167f5605aad1542ddbc8658ce502e0fe64c9566401dcb3041f6a9844a9d82195a27360405160405180910390a3801561484d578373ffffffffffffffffffffffffffffffffffffffff167feaff2f39998930238b3508c586198a5a51a4d53ea343ce57bbd1556c03256e9160405160405180910390a2614891565b8373ffffffffffffffffffffffffffffffffffffffff167f405517e310c96c410ba1acddffb912c6acc98afceb6449c0b8cef3459fb5de1060405160405180910390a25b5b600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561495957600080fd5b6102c65a03f1151561496a57600080fd5b505050604051805190506000808581526020019081526020016000206003018190555050505050565b600080600080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015492508360020154614a2d8461359e565b019150614a3985612898565b9050614a4485613f04565b81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600160008085815260200190815260200160002060010160146101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8cfa3f0846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515614b5b57600080fd5b6102c65a03f11515614b6c57600080fd5b50505060405180519050600080858152602001908152602001600020600301819055506001600d600085815260200190815260200160002060006101000a81548160ff021916908315150217905550801515614c06578473ffffffffffffffffffffffffffffffffffffffff167f0be47533fe1d2625f0c1e32e07a77950b8d95efd37b95b8cac0f19a6124d520460405160405180910390a25b5050505050565b6000614c1884612898565b151515614c2457600080fd5b614c2d84611fcf565b151515614c3957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600a8152602001807f6d696e4465706f73697400000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614d0357600080fd5b6102c65a03f11515614d1457600080fd5b505050604051805190508310151515614d2c57600080fd5b42600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b1515614df757600080fd5b6102c65a03f11515614e0857600080fd5b505050604051805190504201111515614e2057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050338160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515614fa557600080fd5b6102c65a03f11515614fb657600080fd5b505050604051805190501515614fcb57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ec85e6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018281038252600d8152602001807f6170706c7953746167654c656e00000000000000000000000000000000000000815250602001915050602060405180830381600087803b151561509557600080fd5b6102c65a03f115156150a657600080fd5b50505060405180519050420181600001819055508281600201819055508373ffffffffffffffffffffffffffffffffffffffff167f4620cb889f28e046fa2dc2a5a1f58d13dd1d89e30b4edbea3c66a6285719b94984846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015615143578082015181840152602081019050615128565b50505050905090810190601f1680156151705780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050505600a165627a7a723058202620e20cb53318ebbbc4d90717d2e168052a3f26f49cac663399d2a02be1623a0029", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "judgeAppealPhaseLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "name": "getChallengeChallenger", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "requestAppealPhaseLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "name": "getChallengeStake", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "feeRecipient", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getListingApplicationExpiry", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "deposit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "challengesOverturned", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "challengeCanBeResolved", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "string" - } - ], - "name": "apply", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "name": "getChallengeTotalTokens", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "appWasMade", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "requestAppealPhaseLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "feeRecipient", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getListingOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "listingAddress", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "name": "getChallengeRewardPool", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "challengeExists", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "listingAddress", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "name": "getChallengeResolved", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "amount", + "type": "uint256" }, { - "constant": true, - "inputs": [], - "name": "appealFee", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "data", + "type": "string" + } + ], + "name": "apply", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "appWasMade", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "exitListing", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getListingOwner", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getListingUnstakedDeposit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "name": "getChallengeRewardPool", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getListingIsWhitelisted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "challengeExists", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - }, - { - "name": "voter", - "type": "address" - } - ], - "name": "tokenClaims", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "name": "getChallengeResolved", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - }, - { - "name": "data", - "type": "string" - } - ], - "name": "challenge", - "outputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appealFee", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "exitListing", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getListingUnstakedDeposit", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "name": "determineReward", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getListingIsWhitelisted", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "appellate", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "canBeWhitelisted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "challengeID", + "type": "uint256" }, { - "constant": true, - "inputs": [], - "name": "parameterizer", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "voter", + "type": "address" + } + ], + "name": "tokenClaims", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getListingChallengeID", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "listingAddress", + "type": "address" }, { - "constant": true, - "inputs": [], - "name": "deniedAppealFees", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "data", + "type": "string" + } + ], + "name": "challenge", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "challengeID", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "name": "determineReward", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "voting", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appellate", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "canBeWhitelisted", + "outputs": [ { - "inputs": [ - { - "name": "tokenAddr", - "type": "address" - }, - { - "name": "plcrAddr", - "type": "address" - }, - { - "name": "paramsAddr", - "type": "address" - }, - { - "name": "appellateAddr", - "type": "address" - }, - { - "name": "feeRecipientAddr", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "parameterizer", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "requester", - "type": "address" - }, - { - "indexed": true, - "name": "listing", - "type": "address" - } - ], - "name": "AppealRequested", - "type": "event" + "name": "listingAddress", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listing", - "type": "address" - } - ], - "name": "AppealGranted", - "type": "event" - }, + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getListingChallengeID", + "outputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listing", - "type": "address" - } - ], - "name": "JECWhitelistedListing", - "type": "event" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "deniedAppealFees", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "voting", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "AppealFeeSet", - "type": "event" + "name": "tokenAddr", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "length", - "type": "uint256" - } - ], - "name": "MakeAppealLengthSet", - "type": "event" + "name": "plcrAddr", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "length", - "type": "uint256" - } - ], - "name": "AppealLengthSet", - "type": "event" + "name": "paramsAddr", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "recipient", - "type": "address" - } - ], - "name": "FeeRecipientSet", - "type": "event" + "name": "appellateAddr", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - }, - { - "indexed": false, - "name": "deposit", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "string" - } - ], - "name": "Application", - "type": "event" - }, + "name": "feeRecipientAddr", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "requester", + "type": "address" + }, + { + "indexed": true, + "name": "listing", + "type": "address" + } + ], + "name": "AppealRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listing", + "type": "address" + } + ], + "name": "AppealGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listing", + "type": "address" + } + ], + "name": "JECWhitelistedListing", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "fee", + "type": "uint256" + } + ], + "name": "AppealFeeSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "length", + "type": "uint256" + } + ], + "name": "MakeAppealLengthSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "length", + "type": "uint256" + } + ], + "name": "AppealLengthSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "recipient", + "type": "address" + } + ], + "name": "FeeRecipientSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - }, - { - "indexed": false, - "name": "deposit", - "type": "uint256" - }, - { - "indexed": true, - "name": "pollID", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "string" - } - ], - "name": "ChallengeInitiated", - "type": "event" + "indexed": true, + "name": "listingAddress", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - }, - { - "indexed": false, - "name": "added", - "type": "uint256" - }, - { - "indexed": false, - "name": "newTotal", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" + "indexed": false, + "name": "deposit", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - }, - { - "indexed": false, - "name": "withdrew", - "type": "uint256" - }, - { - "indexed": false, - "name": "newTotal", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, + "indexed": false, + "name": "data", + "type": "string" + } + ], + "name": "Application", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - } - ], - "name": "NewListingWhitelisted", - "type": "event" + "indexed": true, + "name": "listingAddress", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - } - ], - "name": "ApplicationRemoved", - "type": "event" + "indexed": false, + "name": "deposit", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - } - ], - "name": "ListingRemoved", - "type": "event" + "indexed": true, + "name": "pollID", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - }, - { - "indexed": true, - "name": "challengeID", - "type": "uint256" - } - ], - "name": "ChallengeFailed", - "type": "event" - }, + "indexed": false, + "name": "data", + "type": "string" + } + ], + "name": "ChallengeInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "listingAddress", - "type": "address" - }, - { - "indexed": true, - "name": "challengeID", - "type": "uint256" - } - ], - "name": "ChallengeSucceeded", - "type": "event" + "indexed": true, + "name": "listingAddress", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "voter", - "type": "address" - }, - { - "indexed": true, - "name": "challengeID", - "type": "uint256" - }, - { - "indexed": false, - "name": "reward", - "type": "uint256" - } - ], - "name": "RewardClaimed", - "type": "event" + "indexed": false, + "name": "added", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "requestAppeal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "indexed": false, + "name": "newTotal", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "grantAppeal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": true, + "name": "listingAddress", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - }, - { - "name": "depositAmount", - "type": "uint256" - } - ], - "name": "whitelistAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": false, + "name": "withdrew", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "fee", - "type": "uint256" - } - ], - "name": "setAppealFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "indexed": false, + "name": "newTotal", + "type": "uint256" + } + ], + "name": "Withdrawal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listingAddress", + "type": "address" + } + ], + "name": "NewListingWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listingAddress", + "type": "address" + } + ], + "name": "ApplicationRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listingAddress", + "type": "address" + } + ], + "name": "ListingRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listingAddress", + "type": "address" + }, + { + "indexed": true, + "name": "challengeID", + "type": "uint256" + } + ], + "name": "ChallengeFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "listingAddress", + "type": "address" + }, + { + "indexed": true, + "name": "challengeID", + "type": "uint256" + } + ], + "name": "ChallengeSucceeded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": false, - "inputs": [ - { - "name": "length", - "type": "uint256" - } - ], - "name": "setMakeAppealLength", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": true, + "name": "voter", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "length", - "type": "uint256" - } - ], - "name": "setAppealLength", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "indexed": true, + "name": "challengeID", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "recipient", - "type": "address" - } - ], - "name": "setFeeRecipient", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "indexed": false, + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardClaimed", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "requestAppeal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "grantAppeal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + }, + { + "name": "depositAmount", + "type": "uint256" + } + ], + "name": "whitelistAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "fee", + "type": "uint256" + } + ], + "name": "setAppealFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "length", + "type": "uint256" + } + ], + "name": "setMakeAppealLength", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "length", + "type": "uint256" + } + ], + "name": "setAppealLength", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "setFeeRecipient", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdrawDeniedAppealsFees", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "updateStatus", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "challengeID", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + } + ], + "name": "claimReward", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "constant": false, - "inputs": [], - "name": "withdrawDeniedAppealsFees", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "voter", + "type": "address" }, { - "constant": false, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "updateStatus", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "challengeID", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "challengeID", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - } - ], - "name": "claimReward", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "salt", + "type": "uint256" + } + ], + "name": "voterReward", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "voter", - "type": "address" - }, - { - "name": "challengeID", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - } - ], - "name": "voterReward", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getRequestAppealPhaseExpiry", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getRequestAppealPhaseExpiry", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getAppealRequested", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getAppealRequested", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getAppealFeePaid", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getAppealFeePaid", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getAppealPhaseExpiry", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getAppealPhaseExpiry", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "listingAddress", + "type": "address" + } + ], + "name": "getAppealGranted", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "listingAddress", - "type": "address" - } - ], - "name": "getAppealGranted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xe6a7cd556012e83b48cbfd1cbf6dd0235d4c7ed0", - "transactionHash": "0x4a6ca7c6e2d6b639f850750d14fe1c216467099c974acb0978610d27cc7782f7" - }, - "50": { - "events": {}, - "links": {}, - "address": "0x558b378b0a693c5d4f68589f37121c139420c8a6", - "transactionHash": "0x996142214ef54b560472817d327e33821d41c945a360701e0218a88a5ed800eb" + "name": "", + "type": "bool" } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0xe6a7cd556012e83b48cbfd1cbf6dd0235d4c7ed0", + "transactionHash": "0x4a6ca7c6e2d6b639f850750d14fe1c216467099c974acb0978610d27cc7782f7" + }, + "50": { + "events": {}, + "links": {}, + "address": "0x558b378b0a693c5d4f68589f37121c139420c8a6", + "transactionHash": "0x996142214ef54b560472817d327e33821d41c945a360701e0218a88a5ed800eb" } -} \ No newline at end of file + } +} diff --git a/packages/core/src/artifacts/PLCRVoting.json b/packages/core/src/artifacts/PLCRVoting.json index ed81e7de63..31446eb99e 100644 --- a/packages/core/src/artifacts/PLCRVoting.json +++ b/packages/core/src/artifacts/PLCRVoting.json @@ -1,788 +1,790 @@ { - "contractName": "PLCRVoting", - "bytecode": "0x6060604052341561000f57600080fd5b6040516020806122548339810160405280805190602001909190505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008081905550506121d1806100836000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063053e71a61461019b57806311fadea3146101d25780632173a10f146102095780632e9b12d01461023257806332ed3d60146102695780633b930294146102b2578063427fa1d2146102ff578063441c77c01461034c57806349403183146103875780635f4da610146103c25780636b2d95d4146103f95780636cbf9c5e1461044657806372d8e44214610488578063819b0293146104e257806388d21ff31461054e57806397508f361461058957806397603560146105b2578063a1103f37146105d5578063a25236fe14610633578063a4439dc514610656578063b11d8bb814610691578063c622afb0146106c6578063c9d983e61461071c578063d138209214610753578063d901402b146107a9578063d9548e5314610807578063ddb261b514610842578063e7b1d43c14610879578063e8cfa3f01461089c578063ee684830146108d3578063ee8badd71461090e578063fc0c546a14610978575b600080fd5b34156101a657600080fd5b6101bc60048080359060200190919050506109cd565b6040518082815260200191505060405180910390f35b34156101dd57600080fd5b6101f36004808035906020019091905050610a2e565b6040518082815260200191505060405180910390f35b341561021457600080fd5b61021c610a4e565b6040518082815260200191505060405180910390f35b341561023d57600080fd5b6102536004808035906020019091905050610a53565b6040518082815260200191505060405180910390f35b341561027457600080fd5b61029c6004808035906020019091908035906020019091908035906020019091905050610a73565b6040518082815260200191505060405180910390f35b34156102bd57600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b50565b6040518082815260200191505060405180910390f35b341561030a57600080fd5b610336600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b68565b6040518082815260200191505060405180910390f35b341561035757600080fd5b61036d6004808035906020019091905050610c47565b604051808215151515815260200191505060405180910390f35b341561039257600080fd5b6103a86004808035906020019091905050610c96565b604051808215151515815260200191505060405180910390f35b34156103cd57600080fd5b6103e36004808035906020019091905050610d29565b6040518082815260200191505060405180910390f35b341561040457600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d49565b6040518082815260200191505060405180910390f35b341561045157600080fd5b610486600480803590602001909190803560001916906020019091908035906020019091908035906020019091905050610d64565b005b341561049357600080fd5b6104c8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506112ba565b604051808215151515815260200191505060405180910390f35b34156104ed57600080fd5b610534600480803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113af565b604051808215151515815260200191505060405180910390f35b341561055957600080fd5b61056f60048080359060200190919050506113f3565b604051808215151515815260200191505060405180910390f35b341561059457600080fd5b61059c611487565b6040518082815260200191505060405180910390f35b34156105bd57600080fd5b6105d3600480803590602001909190505061148d565b005b34156105e057600080fd5b610615600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611580565b60405180826000191660001916815260200191505060405180910390f35b341561063e57600080fd5b61065460048080359060200190919050506115e3565b005b341561066157600080fd5b6106776004808035906020019091905050611896565b604051808215151515815260200191505060405180910390f35b341561069c57600080fd5b6106c460048080359060200190919080359060200190919080359060200190919050506118d3565b005b34156106d157600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ac1565b6040518082815260200191505060405180910390f35b341561072757600080fd5b61073d6004808035906020019091905050611bed565b6040518082815260200191505060405180910390f35b341561075e57600080fd5b610793600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c0d565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cfa565b60405180826000191660001916815260200191505060405180910390f35b341561081257600080fd5b6108286004808035906020019091905050611dea565b604051808215151515815260200191505060405180910390f35b341561084d57600080fd5b6108636004808035906020019091905050611df6565b6040518082815260200191505060405180910390f35b341561088457600080fd5b61089a6004808035906020019091905050611e16565b005b34156108a757600080fd5b6108bd6004808035906020019091905050612005565b6040518082815260200191505060405180910390f35b34156108de57600080fd5b6108f46004808035906020019091905050612067565b604051808215151515815260200191505060405180910390f35b341561091957600080fd5b610962600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803515159060200190919050506120a3565b6040518082815260200191505060405180910390f35b341561098357600080fd5b61098b61214f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006109d882612067565b15156109e357600080fd5b6109ec82610c96565b15610a0f5760016000838152602001908152602001600020600301549050610a29565b600160008381526020019081526020016000206004015490505b919050565b600060016000838152602001908152602001600020600301549050919050565b600081565b600060016000838152602001908152602001600020600401549050919050565b600060016000540160008190555060a060405190810160405280844201815260200183854201018152602001858152602001600081526020016000815250600160008054815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050506000547fef096063d99f4ef9370b5e89d45025615c869845ca33878d173e8dca429b2be085858560405180848152602001838152602001828152602001935050505060405180910390a260005490509392505050565b60026020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091600080604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610c2557600080fd5b6102c65a03f41515610c3657600080fd5b505050604051805190509050919050565b6000610c52826113f3565b1515610c5d57600080fd5b610c7c6001600084815260200190815260200160002060010154611dea565b158015610c8f5750610c8d82611896565b155b9050919050565b6000610ca0612175565b610ca983612067565b1515610cb457600080fd5b6001600084815260200190815260200160002060a060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090508060800151816060015101816040015102816060015160640211915050919050565b600060016000838152602001908152602001600020600201549050919050565b6000610d5d82610d5884610b68565b611c0d565b9050919050565b600080610d7086611896565b1515610d7b57600080fd5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610dc957600080fd5b60008614151515610dd957600080fd5b6000831480610df957506000600102610df23385611cfa565b6000191614155b1515610e0457600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610ebf57600080fd5b6102c65a03f41515610ed057600080fd5b505050604051805190509150858214610ee95781610fc0565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610fa457600080fd5b6102c65a03f41515610fb557600080fd5b505050604051805190505b9150610fce838333876113af565b1515610fd957600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________639735c51b90918589866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183815260200182815260200194505050505060006040518083038186803b151561109b57600080fd5b6102c65a03f415156110ac57600080fd5b5050506110b93387611580565b9050600473__AttributeStore________________________63977aa031909183876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001836000191660001916815260200180602001838152602001828103825260098152602001807f6e756d546f6b656e73000000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561117957600080fd5b6102c65a03f4151561118a57600080fd5b505050600473__AttributeStore________________________63977aa03190918388600190046040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360001916600019168152602001806020018381526020018281038252600a8152602001807f636f6d6d6974486173680000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561124f57600080fd5b6102c65a03f4151561126057600080fd5b505050853373ffffffffffffffffffffffffffffffffffffffff167f1d1ce8842c4b2d0eaed42eb6d7732092ca85f0992cae9c760d181efcb0aedf4e866040518082815260200191505060405180910390a3505050505050565b60006112c5826113f3565b15156112d057600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________63366a5ba29091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b151561138b57600080fd5b6102c65a03f4151561139c57600080fd5b5050506040518051905015905092915050565b60008060006113be8588611c0d565b84101591506113cd8587611c0d565b841115806113db5750600086145b90508180156113e75750805b92505050949350505050565b6000806000600160008581526020019081526020016000206000015491506001600085815260200190815260200160002060010154905060008214801561143b575060008114155b15151561144457fe5b600082141580156114555750600081145b15151561145e57fe5b600082148061146d5750600081145b1561147b5760009250611480565b600192505b5050919050565b60005481565b61149681612067565b15156114a157600080fd5b6114ab33826112ba565b1515156114b757600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b151561156957600080fd5b6102c65a03f4151561157a57600080fd5b50505050565b60008282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001925050506040518091039020905092915050565b80600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a957600080fd5b6102c65a03f115156116ba57600080fd5b50505060405180519050101515156116d157600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156117d257600080fd5b6102c65a03f115156117e357600080fd5b5050506040518051905015156117f857600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f4bdec44a53feb3aabedf51c989ff2b6aebe7369d3974f57c304758a8537281e1826040518082815260200191505060405180910390a250565b60006118a1826113f3565b15156118ac57600080fd5b6118cb6001600084815260200190815260200160002060000154611dea565b159050919050565b60006118de84610c47565b15156118e957600080fd5b6118f333856112ba565b1515156118ff57600080fd5b6119093385611cfa565b600019168383604051808381526020018281526020019250505060405180910390206000191614151561193b57600080fd5b6119453385611c0d565b905060018314156119795780600160008681526020019081526020016000206003016000828254019250508190555061199e565b8060016000868152602001908152602001600020600401600082825401925050819055505b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b1515611a5057600080fd5b6102c65a03f41515611a6157600080fd5b505050833373ffffffffffffffffffffffffffffffffffffffff167f7f9df012dd015e7e61a4a17ccf8db7fb6afbe211465b5696368d1d6408d033118386604051808381526020018281526020019250505060405180910390a350505050565b6000806000611acf85610b68565b9150611adb8583611c0d565b90505b600081141515611be157611af28583611c0d565b905083811015611b0457819250611be5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515611bbf57600080fd5b6102c65a03f41515611bd057600080fd5b505050604051805190509150611ade565b8192505b505092915050565b600060016000838152602001908152602001600020600101549050919050565b6000600473__AttributeStore________________________6350389f5c9091611c378686611580565b6000604051602001526040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826000191660001916815260200180602001828103825260098152602001807f6e756d546f6b656e730000000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611cd757600080fd5b6102c65a03f41515611ce857600080fd5b50505060405180519050905092915050565b6000600473__AttributeStore________________________6350389f5c9091611d248686611580565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018260001916600019168152602001806020018281038252600a8152602001807f636f6d6d69744861736800000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611dc457600080fd5b6102c65a03f41515611dd557600080fd5b50505060405180519050600102905092915050565b60008142119050919050565b600060016000838152602001908152602001600020600001549050919050565b6000611e2133610d49565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050818110151515611e7357600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611f4057600080fd5b6102c65a03f11515611f5157600080fd5b505050604051805190501515611f6657600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167f2c88837e03c4eee367d64fb379bbf7dad76a371c52622230bcf8b79728b9c532836040518082815260200191505060405180910390a25050565b600061201082612067565b151561201b57600080fd5b61202482610c96565b15156120485760016000838152602001908152602001600020600301549050612062565b600160008381526020019081526020016000206004015490505b919050565b6000612072826113f3565b151561207d57600080fd5b61209c6001600084815260200190815260200160002060010154611dea565b9050919050565b6000806000806120b287612067565b15156120bd57600080fd5b6120c788886112ba565b15156120d257600080fd5b84806120e357506120e287610c96565b5b6120ee5760006120f1565b60015b60ff16925082866040518083815260200182815260200192505050604051809103902091506121208888611cfa565b90508060001916826000191614151561213857600080fd5b6121428888611c0d565b9350505050949350505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058204027c84c081352b38a6489a6158b6fb09abaac1bae82c87593f574d2865c14190029", - "deployedBytecode": "0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063053e71a61461019b57806311fadea3146101d25780632173a10f146102095780632e9b12d01461023257806332ed3d60146102695780633b930294146102b2578063427fa1d2146102ff578063441c77c01461034c57806349403183146103875780635f4da610146103c25780636b2d95d4146103f95780636cbf9c5e1461044657806372d8e44214610488578063819b0293146104e257806388d21ff31461054e57806397508f361461058957806397603560146105b2578063a1103f37146105d5578063a25236fe14610633578063a4439dc514610656578063b11d8bb814610691578063c622afb0146106c6578063c9d983e61461071c578063d138209214610753578063d901402b146107a9578063d9548e5314610807578063ddb261b514610842578063e7b1d43c14610879578063e8cfa3f01461089c578063ee684830146108d3578063ee8badd71461090e578063fc0c546a14610978575b600080fd5b34156101a657600080fd5b6101bc60048080359060200190919050506109cd565b6040518082815260200191505060405180910390f35b34156101dd57600080fd5b6101f36004808035906020019091905050610a2e565b6040518082815260200191505060405180910390f35b341561021457600080fd5b61021c610a4e565b6040518082815260200191505060405180910390f35b341561023d57600080fd5b6102536004808035906020019091905050610a53565b6040518082815260200191505060405180910390f35b341561027457600080fd5b61029c6004808035906020019091908035906020019091908035906020019091905050610a73565b6040518082815260200191505060405180910390f35b34156102bd57600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b50565b6040518082815260200191505060405180910390f35b341561030a57600080fd5b610336600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b68565b6040518082815260200191505060405180910390f35b341561035757600080fd5b61036d6004808035906020019091905050610c47565b604051808215151515815260200191505060405180910390f35b341561039257600080fd5b6103a86004808035906020019091905050610c96565b604051808215151515815260200191505060405180910390f35b34156103cd57600080fd5b6103e36004808035906020019091905050610d29565b6040518082815260200191505060405180910390f35b341561040457600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d49565b6040518082815260200191505060405180910390f35b341561045157600080fd5b610486600480803590602001909190803560001916906020019091908035906020019091908035906020019091905050610d64565b005b341561049357600080fd5b6104c8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506112ba565b604051808215151515815260200191505060405180910390f35b34156104ed57600080fd5b610534600480803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113af565b604051808215151515815260200191505060405180910390f35b341561055957600080fd5b61056f60048080359060200190919050506113f3565b604051808215151515815260200191505060405180910390f35b341561059457600080fd5b61059c611487565b6040518082815260200191505060405180910390f35b34156105bd57600080fd5b6105d3600480803590602001909190505061148d565b005b34156105e057600080fd5b610615600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611580565b60405180826000191660001916815260200191505060405180910390f35b341561063e57600080fd5b61065460048080359060200190919050506115e3565b005b341561066157600080fd5b6106776004808035906020019091905050611896565b604051808215151515815260200191505060405180910390f35b341561069c57600080fd5b6106c460048080359060200190919080359060200190919080359060200190919050506118d3565b005b34156106d157600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ac1565b6040518082815260200191505060405180910390f35b341561072757600080fd5b61073d6004808035906020019091905050611bed565b6040518082815260200191505060405180910390f35b341561075e57600080fd5b610793600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c0d565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cfa565b60405180826000191660001916815260200191505060405180910390f35b341561081257600080fd5b6108286004808035906020019091905050611dea565b604051808215151515815260200191505060405180910390f35b341561084d57600080fd5b6108636004808035906020019091905050611df6565b6040518082815260200191505060405180910390f35b341561088457600080fd5b61089a6004808035906020019091905050611e16565b005b34156108a757600080fd5b6108bd6004808035906020019091905050612005565b6040518082815260200191505060405180910390f35b34156108de57600080fd5b6108f46004808035906020019091905050612067565b604051808215151515815260200191505060405180910390f35b341561091957600080fd5b610962600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803515159060200190919050506120a3565b6040518082815260200191505060405180910390f35b341561098357600080fd5b61098b61214f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006109d882612067565b15156109e357600080fd5b6109ec82610c96565b15610a0f5760016000838152602001908152602001600020600301549050610a29565b600160008381526020019081526020016000206004015490505b919050565b600060016000838152602001908152602001600020600301549050919050565b600081565b600060016000838152602001908152602001600020600401549050919050565b600060016000540160008190555060a060405190810160405280844201815260200183854201018152602001858152602001600081526020016000815250600160008054815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050506000547fef096063d99f4ef9370b5e89d45025615c869845ca33878d173e8dca429b2be085858560405180848152602001838152602001828152602001935050505060405180910390a260005490509392505050565b60026020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091600080604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610c2557600080fd5b6102c65a03f41515610c3657600080fd5b505050604051805190509050919050565b6000610c52826113f3565b1515610c5d57600080fd5b610c7c6001600084815260200190815260200160002060010154611dea565b158015610c8f5750610c8d82611896565b155b9050919050565b6000610ca0612175565b610ca983612067565b1515610cb457600080fd5b6001600084815260200190815260200160002060a060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090508060800151816060015101816040015102816060015160640211915050919050565b600060016000838152602001908152602001600020600201549050919050565b6000610d5d82610d5884610b68565b611c0d565b9050919050565b600080610d7086611896565b1515610d7b57600080fd5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610dc957600080fd5b60008614151515610dd957600080fd5b6000831480610df957506000600102610df23385611cfa565b6000191614155b1515610e0457600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610ebf57600080fd5b6102c65a03f41515610ed057600080fd5b505050604051805190509150858214610ee95781610fc0565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610fa457600080fd5b6102c65a03f41515610fb557600080fd5b505050604051805190505b9150610fce838333876113af565b1515610fd957600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________639735c51b90918589866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183815260200182815260200194505050505060006040518083038186803b151561109b57600080fd5b6102c65a03f415156110ac57600080fd5b5050506110b93387611580565b9050600473__AttributeStore________________________63977aa031909183876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001836000191660001916815260200180602001838152602001828103825260098152602001807f6e756d546f6b656e73000000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561117957600080fd5b6102c65a03f4151561118a57600080fd5b505050600473__AttributeStore________________________63977aa03190918388600190046040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360001916600019168152602001806020018381526020018281038252600a8152602001807f636f6d6d6974486173680000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561124f57600080fd5b6102c65a03f4151561126057600080fd5b505050853373ffffffffffffffffffffffffffffffffffffffff167f1d1ce8842c4b2d0eaed42eb6d7732092ca85f0992cae9c760d181efcb0aedf4e866040518082815260200191505060405180910390a3505050505050565b60006112c5826113f3565b15156112d057600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________63366a5ba29091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b151561138b57600080fd5b6102c65a03f4151561139c57600080fd5b5050506040518051905015905092915050565b60008060006113be8588611c0d565b84101591506113cd8587611c0d565b841115806113db5750600086145b90508180156113e75750805b92505050949350505050565b6000806000600160008581526020019081526020016000206000015491506001600085815260200190815260200160002060010154905060008214801561143b575060008114155b15151561144457fe5b600082141580156114555750600081145b15151561145e57fe5b600082148061146d5750600081145b1561147b5760009250611480565b600192505b5050919050565b60005481565b61149681612067565b15156114a157600080fd5b6114ab33826112ba565b1515156114b757600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b151561156957600080fd5b6102c65a03f4151561157a57600080fd5b50505050565b60008282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001925050506040518091039020905092915050565b80600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a957600080fd5b6102c65a03f115156116ba57600080fd5b50505060405180519050101515156116d157600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156117d257600080fd5b6102c65a03f115156117e357600080fd5b5050506040518051905015156117f857600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f4bdec44a53feb3aabedf51c989ff2b6aebe7369d3974f57c304758a8537281e1826040518082815260200191505060405180910390a250565b60006118a1826113f3565b15156118ac57600080fd5b6118cb6001600084815260200190815260200160002060000154611dea565b159050919050565b60006118de84610c47565b15156118e957600080fd5b6118f333856112ba565b1515156118ff57600080fd5b6119093385611cfa565b600019168383604051808381526020018281526020019250505060405180910390206000191614151561193b57600080fd5b6119453385611c0d565b905060018314156119795780600160008681526020019081526020016000206003016000828254019250508190555061199e565b8060016000868152602001908152602001600020600401600082825401925050819055505b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b1515611a5057600080fd5b6102c65a03f41515611a6157600080fd5b505050833373ffffffffffffffffffffffffffffffffffffffff167f7f9df012dd015e7e61a4a17ccf8db7fb6afbe211465b5696368d1d6408d033118386604051808381526020018281526020019250505060405180910390a350505050565b6000806000611acf85610b68565b9150611adb8583611c0d565b90505b600081141515611be157611af28583611c0d565b905083811015611b0457819250611be5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515611bbf57600080fd5b6102c65a03f41515611bd057600080fd5b505050604051805190509150611ade565b8192505b505092915050565b600060016000838152602001908152602001600020600101549050919050565b6000600473__AttributeStore________________________6350389f5c9091611c378686611580565b6000604051602001526040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826000191660001916815260200180602001828103825260098152602001807f6e756d546f6b656e730000000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611cd757600080fd5b6102c65a03f41515611ce857600080fd5b50505060405180519050905092915050565b6000600473__AttributeStore________________________6350389f5c9091611d248686611580565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018260001916600019168152602001806020018281038252600a8152602001807f636f6d6d69744861736800000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611dc457600080fd5b6102c65a03f41515611dd557600080fd5b50505060405180519050600102905092915050565b60008142119050919050565b600060016000838152602001908152602001600020600001549050919050565b6000611e2133610d49565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050818110151515611e7357600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611f4057600080fd5b6102c65a03f11515611f5157600080fd5b505050604051805190501515611f6657600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167f2c88837e03c4eee367d64fb379bbf7dad76a371c52622230bcf8b79728b9c532836040518082815260200191505060405180910390a25050565b600061201082612067565b151561201b57600080fd5b61202482610c96565b15156120485760016000838152602001908152602001600020600301549050612062565b600160008381526020019081526020016000206004015490505b919050565b6000612072826113f3565b151561207d57600080fd5b61209c6001600084815260200190815260200160002060010154611dea565b9050919050565b6000806000806120b287612067565b15156120bd57600080fd5b6120c788886112ba565b15156120d257600080fd5b84806120e357506120e287610c96565b5b6120ee5760006120f1565b60015b60ff16925082866040518083815260200182815260200192505050604051809103902091506121208888611cfa565b90508060001916826000191614151561213857600080fd5b6121428888611c0d565b9350505050949350505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058204027c84c081352b38a6489a6158b6fb09abaac1bae82c87593f574d2865c14190029", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "INITIAL_POLL_NONCE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "contractName": "PLCRVoting", + "bytecode": + "0x6060604052341561000f57600080fd5b6040516020806122548339810160405280805190602001909190505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008081905550506121d1806100836000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063053e71a61461019b57806311fadea3146101d25780632173a10f146102095780632e9b12d01461023257806332ed3d60146102695780633b930294146102b2578063427fa1d2146102ff578063441c77c01461034c57806349403183146103875780635f4da610146103c25780636b2d95d4146103f95780636cbf9c5e1461044657806372d8e44214610488578063819b0293146104e257806388d21ff31461054e57806397508f361461058957806397603560146105b2578063a1103f37146105d5578063a25236fe14610633578063a4439dc514610656578063b11d8bb814610691578063c622afb0146106c6578063c9d983e61461071c578063d138209214610753578063d901402b146107a9578063d9548e5314610807578063ddb261b514610842578063e7b1d43c14610879578063e8cfa3f01461089c578063ee684830146108d3578063ee8badd71461090e578063fc0c546a14610978575b600080fd5b34156101a657600080fd5b6101bc60048080359060200190919050506109cd565b6040518082815260200191505060405180910390f35b34156101dd57600080fd5b6101f36004808035906020019091905050610a2e565b6040518082815260200191505060405180910390f35b341561021457600080fd5b61021c610a4e565b6040518082815260200191505060405180910390f35b341561023d57600080fd5b6102536004808035906020019091905050610a53565b6040518082815260200191505060405180910390f35b341561027457600080fd5b61029c6004808035906020019091908035906020019091908035906020019091905050610a73565b6040518082815260200191505060405180910390f35b34156102bd57600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b50565b6040518082815260200191505060405180910390f35b341561030a57600080fd5b610336600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b68565b6040518082815260200191505060405180910390f35b341561035757600080fd5b61036d6004808035906020019091905050610c47565b604051808215151515815260200191505060405180910390f35b341561039257600080fd5b6103a86004808035906020019091905050610c96565b604051808215151515815260200191505060405180910390f35b34156103cd57600080fd5b6103e36004808035906020019091905050610d29565b6040518082815260200191505060405180910390f35b341561040457600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d49565b6040518082815260200191505060405180910390f35b341561045157600080fd5b610486600480803590602001909190803560001916906020019091908035906020019091908035906020019091905050610d64565b005b341561049357600080fd5b6104c8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506112ba565b604051808215151515815260200191505060405180910390f35b34156104ed57600080fd5b610534600480803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113af565b604051808215151515815260200191505060405180910390f35b341561055957600080fd5b61056f60048080359060200190919050506113f3565b604051808215151515815260200191505060405180910390f35b341561059457600080fd5b61059c611487565b6040518082815260200191505060405180910390f35b34156105bd57600080fd5b6105d3600480803590602001909190505061148d565b005b34156105e057600080fd5b610615600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611580565b60405180826000191660001916815260200191505060405180910390f35b341561063e57600080fd5b61065460048080359060200190919050506115e3565b005b341561066157600080fd5b6106776004808035906020019091905050611896565b604051808215151515815260200191505060405180910390f35b341561069c57600080fd5b6106c460048080359060200190919080359060200190919080359060200190919050506118d3565b005b34156106d157600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ac1565b6040518082815260200191505060405180910390f35b341561072757600080fd5b61073d6004808035906020019091905050611bed565b6040518082815260200191505060405180910390f35b341561075e57600080fd5b610793600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c0d565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cfa565b60405180826000191660001916815260200191505060405180910390f35b341561081257600080fd5b6108286004808035906020019091905050611dea565b604051808215151515815260200191505060405180910390f35b341561084d57600080fd5b6108636004808035906020019091905050611df6565b6040518082815260200191505060405180910390f35b341561088457600080fd5b61089a6004808035906020019091905050611e16565b005b34156108a757600080fd5b6108bd6004808035906020019091905050612005565b6040518082815260200191505060405180910390f35b34156108de57600080fd5b6108f46004808035906020019091905050612067565b604051808215151515815260200191505060405180910390f35b341561091957600080fd5b610962600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803515159060200190919050506120a3565b6040518082815260200191505060405180910390f35b341561098357600080fd5b61098b61214f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006109d882612067565b15156109e357600080fd5b6109ec82610c96565b15610a0f5760016000838152602001908152602001600020600301549050610a29565b600160008381526020019081526020016000206004015490505b919050565b600060016000838152602001908152602001600020600301549050919050565b600081565b600060016000838152602001908152602001600020600401549050919050565b600060016000540160008190555060a060405190810160405280844201815260200183854201018152602001858152602001600081526020016000815250600160008054815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050506000547fef096063d99f4ef9370b5e89d45025615c869845ca33878d173e8dca429b2be085858560405180848152602001838152602001828152602001935050505060405180910390a260005490509392505050565b60026020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091600080604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610c2557600080fd5b6102c65a03f41515610c3657600080fd5b505050604051805190509050919050565b6000610c52826113f3565b1515610c5d57600080fd5b610c7c6001600084815260200190815260200160002060010154611dea565b158015610c8f5750610c8d82611896565b155b9050919050565b6000610ca0612175565b610ca983612067565b1515610cb457600080fd5b6001600084815260200190815260200160002060a060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090508060800151816060015101816040015102816060015160640211915050919050565b600060016000838152602001908152602001600020600201549050919050565b6000610d5d82610d5884610b68565b611c0d565b9050919050565b600080610d7086611896565b1515610d7b57600080fd5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610dc957600080fd5b60008614151515610dd957600080fd5b6000831480610df957506000600102610df23385611cfa565b6000191614155b1515610e0457600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610ebf57600080fd5b6102c65a03f41515610ed057600080fd5b505050604051805190509150858214610ee95781610fc0565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610fa457600080fd5b6102c65a03f41515610fb557600080fd5b505050604051805190505b9150610fce838333876113af565b1515610fd957600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________639735c51b90918589866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183815260200182815260200194505050505060006040518083038186803b151561109b57600080fd5b6102c65a03f415156110ac57600080fd5b5050506110b93387611580565b9050600473__AttributeStore________________________63977aa031909183876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001836000191660001916815260200180602001838152602001828103825260098152602001807f6e756d546f6b656e73000000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561117957600080fd5b6102c65a03f4151561118a57600080fd5b505050600473__AttributeStore________________________63977aa03190918388600190046040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360001916600019168152602001806020018381526020018281038252600a8152602001807f636f6d6d6974486173680000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561124f57600080fd5b6102c65a03f4151561126057600080fd5b505050853373ffffffffffffffffffffffffffffffffffffffff167f1d1ce8842c4b2d0eaed42eb6d7732092ca85f0992cae9c760d181efcb0aedf4e866040518082815260200191505060405180910390a3505050505050565b60006112c5826113f3565b15156112d057600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________63366a5ba29091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b151561138b57600080fd5b6102c65a03f4151561139c57600080fd5b5050506040518051905015905092915050565b60008060006113be8588611c0d565b84101591506113cd8587611c0d565b841115806113db5750600086145b90508180156113e75750805b92505050949350505050565b6000806000600160008581526020019081526020016000206000015491506001600085815260200190815260200160002060010154905060008214801561143b575060008114155b15151561144457fe5b600082141580156114555750600081145b15151561145e57fe5b600082148061146d5750600081145b1561147b5760009250611480565b600192505b5050919050565b60005481565b61149681612067565b15156114a157600080fd5b6114ab33826112ba565b1515156114b757600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b151561156957600080fd5b6102c65a03f4151561157a57600080fd5b50505050565b60008282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001925050506040518091039020905092915050565b80600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a957600080fd5b6102c65a03f115156116ba57600080fd5b50505060405180519050101515156116d157600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156117d257600080fd5b6102c65a03f115156117e357600080fd5b5050506040518051905015156117f857600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f4bdec44a53feb3aabedf51c989ff2b6aebe7369d3974f57c304758a8537281e1826040518082815260200191505060405180910390a250565b60006118a1826113f3565b15156118ac57600080fd5b6118cb6001600084815260200190815260200160002060000154611dea565b159050919050565b60006118de84610c47565b15156118e957600080fd5b6118f333856112ba565b1515156118ff57600080fd5b6119093385611cfa565b600019168383604051808381526020018281526020019250505060405180910390206000191614151561193b57600080fd5b6119453385611c0d565b905060018314156119795780600160008681526020019081526020016000206003016000828254019250508190555061199e565b8060016000868152602001908152602001600020600401600082825401925050819055505b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b1515611a5057600080fd5b6102c65a03f41515611a6157600080fd5b505050833373ffffffffffffffffffffffffffffffffffffffff167f7f9df012dd015e7e61a4a17ccf8db7fb6afbe211465b5696368d1d6408d033118386604051808381526020018281526020019250505060405180910390a350505050565b6000806000611acf85610b68565b9150611adb8583611c0d565b90505b600081141515611be157611af28583611c0d565b905083811015611b0457819250611be5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515611bbf57600080fd5b6102c65a03f41515611bd057600080fd5b505050604051805190509150611ade565b8192505b505092915050565b600060016000838152602001908152602001600020600101549050919050565b6000600473__AttributeStore________________________6350389f5c9091611c378686611580565b6000604051602001526040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826000191660001916815260200180602001828103825260098152602001807f6e756d546f6b656e730000000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611cd757600080fd5b6102c65a03f41515611ce857600080fd5b50505060405180519050905092915050565b6000600473__AttributeStore________________________6350389f5c9091611d248686611580565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018260001916600019168152602001806020018281038252600a8152602001807f636f6d6d69744861736800000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611dc457600080fd5b6102c65a03f41515611dd557600080fd5b50505060405180519050600102905092915050565b60008142119050919050565b600060016000838152602001908152602001600020600001549050919050565b6000611e2133610d49565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050818110151515611e7357600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611f4057600080fd5b6102c65a03f11515611f5157600080fd5b505050604051805190501515611f6657600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167f2c88837e03c4eee367d64fb379bbf7dad76a371c52622230bcf8b79728b9c532836040518082815260200191505060405180910390a25050565b600061201082612067565b151561201b57600080fd5b61202482610c96565b15156120485760016000838152602001908152602001600020600301549050612062565b600160008381526020019081526020016000206004015490505b919050565b6000612072826113f3565b151561207d57600080fd5b61209c6001600084815260200190815260200160002060010154611dea565b9050919050565b6000806000806120b287612067565b15156120bd57600080fd5b6120c788886112ba565b15156120d257600080fd5b84806120e357506120e287610c96565b5b6120ee5760006120f1565b60015b60ff16925082866040518083815260200182815260200192505050604051809103902091506121208888611cfa565b90508060001916826000191614151561213857600080fd5b6121428888611c0d565b9350505050949350505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058204027c84c081352b38a6489a6158b6fb09abaac1bae82c87593f574d2865c14190029", + "deployedBytecode": + "0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063053e71a61461019b57806311fadea3146101d25780632173a10f146102095780632e9b12d01461023257806332ed3d60146102695780633b930294146102b2578063427fa1d2146102ff578063441c77c01461034c57806349403183146103875780635f4da610146103c25780636b2d95d4146103f95780636cbf9c5e1461044657806372d8e44214610488578063819b0293146104e257806388d21ff31461054e57806397508f361461058957806397603560146105b2578063a1103f37146105d5578063a25236fe14610633578063a4439dc514610656578063b11d8bb814610691578063c622afb0146106c6578063c9d983e61461071c578063d138209214610753578063d901402b146107a9578063d9548e5314610807578063ddb261b514610842578063e7b1d43c14610879578063e8cfa3f01461089c578063ee684830146108d3578063ee8badd71461090e578063fc0c546a14610978575b600080fd5b34156101a657600080fd5b6101bc60048080359060200190919050506109cd565b6040518082815260200191505060405180910390f35b34156101dd57600080fd5b6101f36004808035906020019091905050610a2e565b6040518082815260200191505060405180910390f35b341561021457600080fd5b61021c610a4e565b6040518082815260200191505060405180910390f35b341561023d57600080fd5b6102536004808035906020019091905050610a53565b6040518082815260200191505060405180910390f35b341561027457600080fd5b61029c6004808035906020019091908035906020019091908035906020019091905050610a73565b6040518082815260200191505060405180910390f35b34156102bd57600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b50565b6040518082815260200191505060405180910390f35b341561030a57600080fd5b610336600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b68565b6040518082815260200191505060405180910390f35b341561035757600080fd5b61036d6004808035906020019091905050610c47565b604051808215151515815260200191505060405180910390f35b341561039257600080fd5b6103a86004808035906020019091905050610c96565b604051808215151515815260200191505060405180910390f35b34156103cd57600080fd5b6103e36004808035906020019091905050610d29565b6040518082815260200191505060405180910390f35b341561040457600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d49565b6040518082815260200191505060405180910390f35b341561045157600080fd5b610486600480803590602001909190803560001916906020019091908035906020019091908035906020019091905050610d64565b005b341561049357600080fd5b6104c8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506112ba565b604051808215151515815260200191505060405180910390f35b34156104ed57600080fd5b610534600480803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113af565b604051808215151515815260200191505060405180910390f35b341561055957600080fd5b61056f60048080359060200190919050506113f3565b604051808215151515815260200191505060405180910390f35b341561059457600080fd5b61059c611487565b6040518082815260200191505060405180910390f35b34156105bd57600080fd5b6105d3600480803590602001909190505061148d565b005b34156105e057600080fd5b610615600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611580565b60405180826000191660001916815260200191505060405180910390f35b341561063e57600080fd5b61065460048080359060200190919050506115e3565b005b341561066157600080fd5b6106776004808035906020019091905050611896565b604051808215151515815260200191505060405180910390f35b341561069c57600080fd5b6106c460048080359060200190919080359060200190919080359060200190919050506118d3565b005b34156106d157600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ac1565b6040518082815260200191505060405180910390f35b341561072757600080fd5b61073d6004808035906020019091905050611bed565b6040518082815260200191505060405180910390f35b341561075e57600080fd5b610793600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611c0d565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cfa565b60405180826000191660001916815260200191505060405180910390f35b341561081257600080fd5b6108286004808035906020019091905050611dea565b604051808215151515815260200191505060405180910390f35b341561084d57600080fd5b6108636004808035906020019091905050611df6565b6040518082815260200191505060405180910390f35b341561088457600080fd5b61089a6004808035906020019091905050611e16565b005b34156108a757600080fd5b6108bd6004808035906020019091905050612005565b6040518082815260200191505060405180910390f35b34156108de57600080fd5b6108f46004808035906020019091905050612067565b604051808215151515815260200191505060405180910390f35b341561091957600080fd5b610962600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803515159060200190919050506120a3565b6040518082815260200191505060405180910390f35b341561098357600080fd5b61098b61214f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006109d882612067565b15156109e357600080fd5b6109ec82610c96565b15610a0f5760016000838152602001908152602001600020600301549050610a29565b600160008381526020019081526020016000206004015490505b919050565b600060016000838152602001908152602001600020600301549050919050565b600081565b600060016000838152602001908152602001600020600401549050919050565b600060016000540160008190555060a060405190810160405280844201815260200183854201018152602001858152602001600081526020016000815250600160008054815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050506000547fef096063d99f4ef9370b5e89d45025615c869845ca33878d173e8dca429b2be085858560405180848152602001838152602001828152602001935050505060405180910390a260005490509392505050565b60026020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091600080604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610c2557600080fd5b6102c65a03f41515610c3657600080fd5b505050604051805190509050919050565b6000610c52826113f3565b1515610c5d57600080fd5b610c7c6001600084815260200190815260200160002060010154611dea565b158015610c8f5750610c8d82611896565b155b9050919050565b6000610ca0612175565b610ca983612067565b1515610cb457600080fd5b6001600084815260200190815260200160002060a060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090508060800151816060015101816040015102816060015160640211915050919050565b600060016000838152602001908152602001600020600201549050919050565b6000610d5d82610d5884610b68565b611c0d565b9050919050565b600080610d7086611896565b1515610d7b57600080fd5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610dc957600080fd5b60008614151515610dd957600080fd5b6000831480610df957506000600102610df23385611cfa565b6000191614155b1515610e0457600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610ebf57600080fd5b6102c65a03f41515610ed057600080fd5b505050604051805190509150858214610ee95781610fc0565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6307d29ac99091886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515610fa457600080fd5b6102c65a03f41515610fb557600080fd5b505050604051805190505b9150610fce838333876113af565b1515610fd957600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________639735c51b90918589866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183815260200182815260200194505050505060006040518083038186803b151561109b57600080fd5b6102c65a03f415156110ac57600080fd5b5050506110b93387611580565b9050600473__AttributeStore________________________63977aa031909183876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001836000191660001916815260200180602001838152602001828103825260098152602001807f6e756d546f6b656e73000000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561117957600080fd5b6102c65a03f4151561118a57600080fd5b505050600473__AttributeStore________________________63977aa03190918388600190046040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360001916600019168152602001806020018381526020018281038252600a8152602001807f636f6d6d6974486173680000000000000000000000000000000000000000000081525060200194505050505060006040518083038186803b151561124f57600080fd5b6102c65a03f4151561126057600080fd5b505050853373ffffffffffffffffffffffffffffffffffffffff167f1d1ce8842c4b2d0eaed42eb6d7732092ca85f0992cae9c760d181efcb0aedf4e866040518082815260200191505060405180910390a3505050505050565b60006112c5826113f3565b15156112d057600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________63366a5ba29091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b151561138b57600080fd5b6102c65a03f4151561139c57600080fd5b5050506040518051905015905092915050565b60008060006113be8588611c0d565b84101591506113cd8587611c0d565b841115806113db5750600086145b90508180156113e75750805b92505050949350505050565b6000806000600160008581526020019081526020016000206000015491506001600085815260200190815260200160002060010154905060008214801561143b575060008114155b15151561144457fe5b600082141580156114555750600081145b15151561145e57fe5b600082148061146d5750600081145b1561147b5760009250611480565b600192505b5050919050565b60005481565b61149681612067565b15156114a157600080fd5b6114ab33826112ba565b1515156114b757600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b151561156957600080fd5b6102c65a03f4151561157a57600080fd5b50505050565b60008282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001925050506040518091039020905092915050565b80600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a957600080fd5b6102c65a03f115156116ba57600080fd5b50505060405180519050101515156116d157600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156117d257600080fd5b6102c65a03f115156117e357600080fd5b5050506040518051905015156117f857600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f4bdec44a53feb3aabedf51c989ff2b6aebe7369d3974f57c304758a8537281e1826040518082815260200191505060405180910390a250565b60006118a1826113f3565b15156118ac57600080fd5b6118cb6001600084815260200190815260200160002060000154611dea565b159050919050565b60006118de84610c47565b15156118e957600080fd5b6118f333856112ba565b1515156118ff57600080fd5b6119093385611cfa565b600019168383604051808381526020018281526020019250505060405180910390206000191614151561193b57600080fd5b6119453385611c0d565b905060018314156119795780600160008681526020019081526020016000206003016000828254019250508190555061199e565b8060016000868152602001908152602001600020600401600082825401925050819055505b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________636d900ed09091866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b1515611a5057600080fd5b6102c65a03f41515611a6157600080fd5b505050833373ffffffffffffffffffffffffffffffffffffffff167f7f9df012dd015e7e61a4a17ccf8db7fb6afbe211465b5696368d1d6408d033118386604051808381526020018281526020019250505060405180910390a350505050565b6000806000611acf85610b68565b9150611adb8583611c0d565b90505b600081141515611be157611af28583611c0d565b905083811015611b0457819250611be5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002073__DLL___________________________________6330fe0a0a9091846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b1515611bbf57600080fd5b6102c65a03f41515611bd057600080fd5b505050604051805190509150611ade565b8192505b505092915050565b600060016000838152602001908152602001600020600101549050919050565b6000600473__AttributeStore________________________6350389f5c9091611c378686611580565b6000604051602001526040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826000191660001916815260200180602001828103825260098152602001807f6e756d546f6b656e730000000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611cd757600080fd5b6102c65a03f41515611ce857600080fd5b50505060405180519050905092915050565b6000600473__AttributeStore________________________6350389f5c9091611d248686611580565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018260001916600019168152602001806020018281038252600a8152602001807f636f6d6d69744861736800000000000000000000000000000000000000000000815250602001935050505060206040518083038186803b1515611dc457600080fd5b6102c65a03f41515611dd557600080fd5b50505060405180519050600102905092915050565b60008142119050919050565b600060016000838152602001908152602001600020600001549050919050565b6000611e2133610d49565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050818110151515611e7357600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611f4057600080fd5b6102c65a03f11515611f5157600080fd5b505050604051805190501515611f6657600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167f2c88837e03c4eee367d64fb379bbf7dad76a371c52622230bcf8b79728b9c532836040518082815260200191505060405180910390a25050565b600061201082612067565b151561201b57600080fd5b61202482610c96565b15156120485760016000838152602001908152602001600020600301549050612062565b600160008381526020019081526020016000206004015490505b919050565b6000612072826113f3565b151561207d57600080fd5b61209c6001600084815260200190815260200160002060010154611dea565b9050919050565b6000806000806120b287612067565b15156120bd57600080fd5b6120c788886112ba565b15156120d257600080fd5b84806120e357506120e287610c96565b5b6120ee5760006120f1565b60015b60ff16925082866040518083815260200182815260200192505050604051809103902091506121208888611cfa565b90508060001916826000191614151561213857600080fd5b6121428888611c0d565b9350505050949350505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058204027c84c081352b38a6489a6158b6fb09abaac1bae82c87593f574d2865c14190029", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "INITIAL_POLL_NONCE", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "voteTokenBalance", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "voteTokenBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pollNonce", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_tokenAddr", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { - "constant": true, - "inputs": [], - "name": "pollNonce", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": true, + "name": "voter", + "type": "address" }, { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": true, + "name": "pollID", + "type": "uint256" }, { - "inputs": [ - { - "name": "_tokenAddr", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, + "indexed": false, + "name": "numTokens", + "type": "uint256" + } + ], + "name": "VoteCommitted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "voter", - "type": "address" - }, - { - "indexed": true, - "name": "pollID", - "type": "uint256" - }, - { - "indexed": false, - "name": "numTokens", - "type": "uint256" - } - ], - "name": "VoteCommitted", - "type": "event" + "indexed": true, + "name": "voter", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "voter", - "type": "address" - }, - { - "indexed": true, - "name": "pollID", - "type": "uint256" - }, - { - "indexed": false, - "name": "numTokens", - "type": "uint256" - }, - { - "indexed": false, - "name": "choice", - "type": "uint256" - } - ], - "name": "VoteRevealed", - "type": "event" + "indexed": true, + "name": "pollID", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "voteQuorum", - "type": "uint256" - }, - { - "indexed": false, - "name": "commitDuration", - "type": "uint256" - }, - { - "indexed": false, - "name": "revealDuration", - "type": "uint256" - }, - { - "indexed": true, - "name": "pollID", - "type": "uint256" - } - ], - "name": "PollCreated", - "type": "event" + "indexed": false, + "name": "numTokens", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "voter", - "type": "address" - }, - { - "indexed": false, - "name": "numTokens", - "type": "uint256" - } - ], - "name": "VotingRightsGranted", - "type": "event" - }, + "indexed": false, + "name": "choice", + "type": "uint256" + } + ], + "name": "VoteRevealed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "voter", - "type": "address" - }, - { - "indexed": false, - "name": "numTokens", - "type": "uint256" - } - ], - "name": "VotingRightsWithdrawn", - "type": "event" + "indexed": false, + "name": "voteQuorum", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getPollCommitEndDate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "commitDuration", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getPollRevealEndDate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "revealDuration", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getPollVoteQuorum", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "indexed": true, + "name": "pollID", + "type": "uint256" + } + ], + "name": "PollCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "name": "numTokens", + "type": "uint256" + } + ], + "name": "VotingRightsGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "name": "numTokens", + "type": "uint256" + } + ], + "name": "VotingRightsWithdrawn", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getPollCommitEndDate", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getPollVotesFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getPollRevealEndDate", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getPollVotesAgainst", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getPollVoteQuorum", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "_numTokens", - "type": "uint256" - } - ], - "name": "requestVotingRights", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getPollVotesFor", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "_numTokens", - "type": "uint256" - } - ], - "name": "withdrawVotingRights", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getPollVotesAgainst", + "outputs": [ { - "constant": false, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "rescueTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_numTokens", + "type": "uint256" + } + ], + "name": "requestVotingRights", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_numTokens", + "type": "uint256" + } + ], + "name": "withdrawVotingRights", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "rescueTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "constant": false, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - }, - { - "name": "_secretHash", - "type": "bytes32" - }, - { - "name": "_numTokens", - "type": "uint256" - }, - { - "name": "_prevPollID", - "type": "uint256" - } - ], - "name": "commitVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_pollID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_prevID", - "type": "uint256" - }, - { - "name": "_nextID", - "type": "uint256" - }, - { - "name": "_voter", - "type": "address" - }, - { - "name": "_numTokens", - "type": "uint256" - } - ], - "name": "validPosition", - "outputs": [ - { - "name": "valid", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_secretHash", + "type": "bytes32" }, { - "constant": false, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - }, - { - "name": "_voteOption", - "type": "uint256" - }, - { - "name": "_salt", - "type": "uint256" - } - ], - "name": "revealVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_numTokens", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - }, - { - "name": "_pollID", - "type": "uint256" - }, - { - "name": "_salt", - "type": "uint256" - }, - { - "name": "_overturned", - "type": "bool" - } - ], - "name": "getNumPassingTokens", - "outputs": [ - { - "name": "correctVotes", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "_prevPollID", + "type": "uint256" + } + ], + "name": "commitVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "constant": false, - "inputs": [ - { - "name": "_voteQuorum", - "type": "uint256" - }, - { - "name": "_commitDuration", - "type": "uint256" - }, - { - "name": "_revealDuration", - "type": "uint256" - } - ], - "name": "startPoll", - "outputs": [ - { - "name": "pollID", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_prevID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "isPassed", - "outputs": [ - { - "name": "passed", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_nextID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getTotalNumberOfTokensForWinningOption", - "outputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getTotalNumberOfTokensForLosingOption", - "outputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "_numTokens", + "type": "uint256" + } + ], + "name": "validPosition", + "outputs": [ { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "pollEnded", - "outputs": [ - { - "name": "ended", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "valid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "commitPeriodActive", - "outputs": [ - { - "name": "active", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_voteOption", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "revealPeriodActive", - "outputs": [ - { - "name": "active", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_salt", + "type": "uint256" + } + ], + "name": "revealVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - }, - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "hasBeenRevealed", - "outputs": [ - { - "name": "revealed", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pollID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "pollExists", - "outputs": [ - { - "name": "exists", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_salt", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - }, - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getCommitHash", - "outputs": [ - { - "name": "commitHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_overturned", + "type": "bool" + } + ], + "name": "getNumPassingTokens", + "outputs": [ + { + "name": "correctVotes", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_voteQuorum", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - }, - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "getNumTokens", - "outputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_commitDuration", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - } - ], - "name": "getLastNode", - "outputs": [ - { - "name": "pollID", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_revealDuration", + "type": "uint256" + } + ], + "name": "startPoll", + "outputs": [ + { + "name": "pollID", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "isPassed", + "outputs": [ + { + "name": "passed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getTotalNumberOfTokensForWinningOption", + "outputs": [ + { + "name": "numTokens", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getTotalNumberOfTokensForLosingOption", + "outputs": [ + { + "name": "numTokens", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "pollEnded", + "outputs": [ + { + "name": "ended", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "commitPeriodActive", + "outputs": [ + { + "name": "active", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "revealPeriodActive", + "outputs": [ + { + "name": "active", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - } - ], - "name": "getLockedTokens", - "outputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pollID", + "type": "uint256" + } + ], + "name": "hasBeenRevealed", + "outputs": [ + { + "name": "revealed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_pollID", + "type": "uint256" + } + ], + "name": "pollExists", + "outputs": [ + { + "name": "exists", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - }, - { - "name": "_numTokens", - "type": "uint256" - } - ], - "name": "getInsertPointForNumTokens", - "outputs": [ - { - "name": "prevNode", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getCommitHash", + "outputs": [ + { + "name": "commitHash", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_terminationDate", - "type": "uint256" - } - ], - "name": "isExpired", - "outputs": [ - { - "name": "expired", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pollID", + "type": "uint256" + } + ], + "name": "getNumTokens", + "outputs": [ + { + "name": "numTokens", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" + } + ], + "name": "getLastNode", + "outputs": [ + { + "name": "pollID", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" + } + ], + "name": "getLockedTokens", + "outputs": [ + { + "name": "numTokens", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_user", - "type": "address" - }, - { - "name": "_pollID", - "type": "uint256" - } - ], - "name": "attrUUID", - "outputs": [ - { - "name": "uuid", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "networks": { - "4": { - "events": {}, - "links": { - "DLL": "0x4d04711b33980ab411b9631eb10e4aa18c583020", - "AttributeStore": "0xd1db75ddbac117345dbd012288540104300b2a35" - }, - "address": "0xd363a2e788f2ab6861e6f9a74fd3eca1820a5ff3", - "transactionHash": "0xe0072d72f52c02e8cfa89248bad0818289dd2482a9901e5e549a07b0901596ff" + "name": "_numTokens", + "type": "uint256" + } + ], + "name": "getInsertPointForNumTokens", + "outputs": [ + { + "name": "prevNode", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_terminationDate", + "type": "uint256" + } + ], + "name": "isExpired", + "outputs": [ + { + "name": "expired", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_user", + "type": "address" }, - "50": { - "events": {}, - "links": { - "DLL": "0x30076fb316b1f4560e32e241d0759a6210f91b45", - "AttributeStore": "0x6bbdd7b1a289c5be8faa29cb1c0be66cb2582060" - }, - "address": "0x45738a3ab3ec37062fde3520d8e27557a8aacb08", - "transactionHash": "0x83acad447b3ca6c244ee14a5d3eb7832887bf01436101386d285840d884864ff" + { + "name": "_pollID", + "type": "uint256" } + ], + "name": "attrUUID", + "outputs": [ + { + "name": "uuid", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "networks": { + "4": { + "events": {}, + "links": { + "DLL": "0x4d04711b33980ab411b9631eb10e4aa18c583020", + "AttributeStore": "0xd1db75ddbac117345dbd012288540104300b2a35" + }, + "address": "0xd363a2e788f2ab6861e6f9a74fd3eca1820a5ff3", + "transactionHash": "0xe0072d72f52c02e8cfa89248bad0818289dd2482a9901e5e549a07b0901596ff" + }, + "50": { + "events": {}, + "links": { + "DLL": "0x30076fb316b1f4560e32e241d0759a6210f91b45", + "AttributeStore": "0x6bbdd7b1a289c5be8faa29cb1c0be66cb2582060" + }, + "address": "0x45738a3ab3ec37062fde3520d8e27557a8aacb08", + "transactionHash": "0x83acad447b3ca6c244ee14a5d3eb7832887bf01436101386d285840d884864ff" } -} \ No newline at end of file + } +} diff --git a/packages/core/src/artifacts/Parameterizer.json b/packages/core/src/artifacts/Parameterizer.json index baa98dbba0..258b810be3 100644 --- a/packages/core/src/artifacts/Parameterizer.json +++ b/packages/core/src/artifacts/Parameterizer.json @@ -1,623 +1,625 @@ { - "contractName": "Parameterizer", - "bytecode": "0x606060405234156200001057600080fd5b6040516101e0806200338e833981016040528080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919050508e600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001836040805190810160405280600a81526020017f6d696e4465706f736974000000000000000000000000000000000000000000008152508e62000594640100000000026200258c176401000000009004565b620001d86040805190810160405280600b81526020017f704d696e4465706f7369740000000000000000000000000000000000000000008152508d62000594640100000000026200258c176401000000009004565b6200022d6040805190810160405280600d81526020017f6170706c7953746167654c656e000000000000000000000000000000000000008152508c62000594640100000000026200258c176401000000009004565b620002826040805190810160405280600e81526020017f704170706c7953746167654c656e0000000000000000000000000000000000008152508b62000594640100000000026200258c176401000000009004565b620002d76040805190810160405280600e81526020017f636f6d6d697453746167654c656e0000000000000000000000000000000000008152508a62000594640100000000026200258c176401000000009004565b6200032c6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e00000000000000000000000000000000008152508962000594640100000000026200258c176401000000009004565b620003816040805190810160405280600e81526020017f72657665616c53746167654c656e0000000000000000000000000000000000008152508862000594640100000000026200258c176401000000009004565b620003d66040805190810160405280600f81526020017f7052657665616c53746167654c656e00000000000000000000000000000000008152508762000594640100000000026200258c176401000000009004565b6200042b6040805190810160405280600f81526020017f64697370656e736174696f6e50637400000000000000000000000000000000008152508662000594640100000000026200258c176401000000009004565b620004806040805190810160405280601081526020017f7044697370656e736174696f6e506374000000000000000000000000000000008152508562000594640100000000026200258c176401000000009004565b620004d56040805190810160405280600a81526020017f766f746551756f72756d000000000000000000000000000000000000000000008152508462000594640100000000026200258c176401000000009004565b6200052a6040805190810160405280600b81526020017f70566f746551756f72756d0000000000000000000000000000000000000000008152508362000594640100000000026200258c176401000000009004565b6200057f6040805190810160405280600a81526020017f7050726f636573734279000000000000000000000000000000000000000000008152508262000594640100000000026200258c176401000000009004565b5050505050505050505050505050506200061b565b80600080846040518082805190602001908083835b602083101515620005d05780518252602082019150602081019050602083039250620005a9565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055505050565b612d63806200062b6000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806315586cf51461014e57806315c60112146101b1578063186953a61461021857806330490e911461024f57806335300990146102765780634780c3e0146102b557806350411552146103555780635dc4867f1461038c578063693ec85e146103c35780636b244bae14610434578063706f0cb91461046b57806372dbdfd1146104a657806377609a41146104e15780637917cd3e146105205780638240ae4b1461055b57806386bb8f3714610596578063a7aad3db146105c2578063bade1c5414610621578063c51131fb146106a3578063d549bb14146106e2578063dc6ab5271461071d578063f2fe973514610758578063f6ba6a2e14610793578063fc0c546a146107ce578063fce1ccca14610823575b600080fd5b341561015957600080fd5b61016f6004808035906020019091905050610878565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101bc57600080fd5b6101d66004808035600019169060200190919050506108b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561022357600080fd5b6102396004808035906020019091905050610900565b6040518082815260200191505060405180910390f35b341561025a57600080fd5b610274600480803560001916906020019091905050610920565b005b341561028157600080fd5b61029b600480803560001916906020019091905050610bcc565b604051808215151515815260200191505060405180910390f35b34156102c057600080fd5b6102da600480803560001916906020019091905050610bf6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031a5780820151818401526020810190506102ff565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103766004808035906020019091905050610cbc565b6040518082815260200191505060405180910390f35b341561039757600080fd5b6103ad6004808035906020019091905050610dd4565b6040518082815260200191505060405180910390f35b34156103ce57600080fd5b61041e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610df4565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b6104556004808035906020019091905050610e7a565b6040518082815260200191505060405180910390f35b341561047657600080fd5b61048c6004808035906020019091905050610e9a565b604051808215151515815260200191505060405180910390f35b34156104b157600080fd5b6104cb600480803560001916906020019091905050610ec7565b6040518082815260200191505060405180910390f35b34156104ec57600080fd5b610506600480803560001916906020019091905050610eef565b604051808215151515815260200191505060405180910390f35b341561052b57600080fd5b6105456004808035600019169060200190919050506111ed565b6040518082815260200191505060405180910390f35b341561056657600080fd5b610580600480803560001916906020019091905050611215565b6040518082815260200191505060405180910390f35b34156105a157600080fd5b6105c060048080359060200190919080359060200190919050506118f6565b005b34156105cd57600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050611c59565b6040518082815260200191505060405180910390f35b341561062c57600080fd5b610685600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050611da9565b60405180826000191660001916815260200191505060405180910390f35b34156106ae57600080fd5b6106c8600480803560001916906020019091905050612325565b604051808215151515815260200191505060405180910390f35b34156106ed57600080fd5b6107076004808035600019169060200190919050506124b0565b6040518082815260200191505060405180910390f35b341561072857600080fd5b6107426004808035600019169060200190919050506124d8565b6040518082815260200191505060405180910390f35b341561076357600080fd5b61077d6004808035600019169060200190919050506124f0565b6040518082815260200191505060405180910390f35b341561079e57600080fd5b6107b8600480803560001916906020019091905050612518565b6040518082815260200191505060405180910390f35b34156107d957600080fd5b6107e1612540565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082e57600080fd5b610836612566565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006001600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060026000836000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000838152602001908152602001600020600201549050919050565b6000600260008360001916600019168152602001908152602001600020905061094882612325565b156109fc576109f7816003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b5050505050826006015461258c565b610b4b565b610a0582610eef565b15610a1857610a1382612611565b610b4a565b8060050154421115610b4457600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b1957600080fd5b6102c65a03f11515610b2a57600080fd5b505050604051805190501515610b3f57600080fd5b610b49565b600080fd5b5b5b60026000836000191660001916815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000610b8f9190612b80565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556005820160009055600682016000905550505050565b60008060026000846000191660001916815260200190815260200160002060050154119050919050565b610bfe612bc8565b6002600083600019166000191681526020019081526020016000206003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b50505050509050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d5857600080fd5b6102c65a03f11515610d6957600080fd5b505050604051805190501415610d9a5760016000838152602001908152602001600020600201546002029050610dcf565b600160008381526020019081526020016000206000015460016000848152602001908152602001600020600201546002020390505b919050565b600060016000838152602001908152602001600020600301549050919050565b6000806000836040518082805190602001908083835b602083101515610e2f5780518252602082019150602081019050602083039250610e0a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020549050919050565b600060016000838152602001908152602001600020600001549050919050565b60006001600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b6000600260008360001916600019168152602001908152602001600020600101549050919050565b6000610ef9612bdc565b610f01612c36565b60026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fdf5780601f10610fb457610100808354040283529160200191610fdf565b820191906000526020600020905b815481529060010190602001808311610fc257829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509150600160008360200151815260200190815260200160002060a06040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff161515151581526020016002820154815260200160038201548152505090506000826020015111801561112457506000151581604001511515145b80156111e45750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee68483083602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156111c857600080fd5b6102c65a03f115156111d957600080fd5b505050604051805190505b92505050919050565b6000600260008360001916600019168152602001908152602001600020600501549050919050565b600061121f612bdc565b60008060026000866000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113005780601f106112d557610100808354040283529160200191611300565b820191906000526020600020905b8154815290600101906020018083116112e357829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820154815260200160068201548152505092506113b36040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b91506113be85610bcc565b80156113ce575060008360200151145b15156113d957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156114da57600080fd5b6102c65a03f115156114eb57600080fd5b50505060405180519050151561150057600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d6061157c6040805190810160405280600b81526020017f70566f746551756f72756d000000000000000000000000000000000000000000815250610df4565b6115ba6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6115f86040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b151561166057600080fd5b6102c65a03f1151561167157600080fd5b50505060405180519050905060a0604051908101604052806064846116ca6040805190810160405280601081526020017f7044697370656e736174696f6e50637400000000000000000000000000000000815250610df4565b606403028115156116d757fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020018381526020016000815250600160008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055506060820151816002015560808201518160030155905050806002600087600019166000191681526020019081526020016000206001018190555084600019163373ffffffffffffffffffffffffffffffffffffffff167fd712977221af40df1112c545d4b92bb6f0d17e307e19a2d637e569a0ba371f6c83600260008a60001916600019168152602001908152602001600020600301600260008b600019166000191681526020019081526020016000206006015460405180848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118db5780601f106118b0576101008083540402835291602001916118db565b820191906000526020600020905b8154815290600101906020018083116118be57829003601f168201915b505094505050505060405180910390a3809350505050919050565b600080600015156001600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561196c57600080fd5b600115156001600086815260200190815260200160002060010160149054906101000a900460ff1615151415156119a257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611a8357600080fd5b6102c65a03f11515611a9457600080fd5b505050604051805190509150611aab338585611c59565b9050816001600086815260200190815260200160002060030160008282540392505081905550806001600086815260200190815260200160002060000160008282540392505081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bc257600080fd5b6102c65a03f11515611bd357600080fd5b505050604051805190501515611be857600080fd5b600180600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b6000806000806001600087815260200190815260200160002060030154925060016000878152602001908152602001600020600001549150600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611d7257600080fd5b6102c65a03f11515611d8357600080fd5b50505060405180519050905082828202811515611d9c57fe5b0493505050509392505050565b6000806000611dec6040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b915084846040518083805190602001908083835b602083101515611e255780518252602082019150602081019050602083039250611e00565b6001836020036101000a0380198251168184511680821785525050505050509050018281526020019250505060405180910390209050611e6481610bcc565b151515611e7057600080fd5b83611e7a86610df4565b14151515611e8757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611f8857600080fd5b6102c65a03f11515611f9957600080fd5b505050604051805190501515611fae57600080fd5b60e060405190810160405280611ff86040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42018152602001600081526020018381526020018681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200161206c6040805190810160405280600a81526020017f7050726f63657373427900000000000000000000000000000000000000000000815250610df4565b6120aa6040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6120e86040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6121266040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42010101018152602001858152506002600083600019166000191681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003019080519060200190612189929190612c7e565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c08201518160060155905050846040518082805190602001908083835b60208310151561221e57805182526020820191506020810190506020830392506121f9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019163373ffffffffffffffffffffffffffffffffffffffff167f9e6158d6d6f14bba901e5e1c5ef548cfef36dcbd56de51e29a5882f3a13d3cf987878560405180806020018481526020018360001916600019168152602001828103825285818151815260200191508051906020019080838360005b838110156122de5780820151818401526020810190506122c3565b50505050905090810190601f16801561230b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3809250505092915050565b600061232f612bdc565b60026000846000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561240d5780601f106123e25761010080835404028352916020019161240d565b820191906000526020600020905b8154815290600101906020018083116123f057829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160058201548152602001600682015481525050905080600001514211801561249857508060a0015142105b80156124a8575060008160200151145b915050919050565b6000600260008360001916600019168152602001908152602001600020600601549050919050565b60006020528060005260406000206000915090505481565b6000600260008360001916600019168152602001908152602001600020600001549050919050565b6000600260008360001916600019168152602001908152602001600020600201549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600080846040518082805190602001908083835b6020831015156125c657805182526020820191506020810190506020830392506125a1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055505050565b612619612bdc565b60008060026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126fa5780601f106126cf576101008083540402835291602001916126fa565b820191906000526020600020905b8154815290600101906020018083116126dd57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509250600160008460200151815260200190815260200160002091506127958360200151610cbc565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318384602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561283457600080fd5b6102c65a03f1151561284557600080fd5b505050604051805190501561296f57428360a0015111156128735761287283606001518460c0015161258c565b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460800151836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561294457600080fd5b6102c65a03f1151561295557600080fd5b50505060405180519050151561296a57600080fd5b612a9d565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160008660200151815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612a7657600080fd5b6102c65a03f11515612a8757600080fd5b505050604051805190501515612a9c57600080fd5b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a684602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612b3a57600080fd5b6102c65a03f11515612b4b57600080fd5b50505060405180519050826003018190555060018260010160146101000a81548160ff02191690831515021790555050505050565b50805460018160011615610100020316600290046000825580601f10612ba65750612bc5565b601f016020900490600052602060002090810190612bc49190612cfe565b5b50565b602060405190810160405280600081525090565b60e060405190810160405280600081526020016000815260200160008152602001612c05612d23565b8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60a06040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cbf57805160ff1916838001178555612ced565b82800160010185558215612ced579182015b82811115612cec578251825591602001919060010190612cd1565b5b509050612cfa9190612cfe565b5090565b612d2091905b80821115612d1c576000816000905550600101612d04565b5090565b90565b6020604051908101604052806000815250905600a165627a7a72305820c4b62ffd3eafe0ccd13aba4f1750411821b8ed81677e804aabd533ea14f92a430029", - "deployedBytecode": "0x606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806315586cf51461014e57806315c60112146101b1578063186953a61461021857806330490e911461024f57806335300990146102765780634780c3e0146102b557806350411552146103555780635dc4867f1461038c578063693ec85e146103c35780636b244bae14610434578063706f0cb91461046b57806372dbdfd1146104a657806377609a41146104e15780637917cd3e146105205780638240ae4b1461055b57806386bb8f3714610596578063a7aad3db146105c2578063bade1c5414610621578063c51131fb146106a3578063d549bb14146106e2578063dc6ab5271461071d578063f2fe973514610758578063f6ba6a2e14610793578063fc0c546a146107ce578063fce1ccca14610823575b600080fd5b341561015957600080fd5b61016f6004808035906020019091905050610878565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101bc57600080fd5b6101d66004808035600019169060200190919050506108b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561022357600080fd5b6102396004808035906020019091905050610900565b6040518082815260200191505060405180910390f35b341561025a57600080fd5b610274600480803560001916906020019091905050610920565b005b341561028157600080fd5b61029b600480803560001916906020019091905050610bcc565b604051808215151515815260200191505060405180910390f35b34156102c057600080fd5b6102da600480803560001916906020019091905050610bf6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031a5780820151818401526020810190506102ff565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103766004808035906020019091905050610cbc565b6040518082815260200191505060405180910390f35b341561039757600080fd5b6103ad6004808035906020019091905050610dd4565b6040518082815260200191505060405180910390f35b34156103ce57600080fd5b61041e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610df4565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b6104556004808035906020019091905050610e7a565b6040518082815260200191505060405180910390f35b341561047657600080fd5b61048c6004808035906020019091905050610e9a565b604051808215151515815260200191505060405180910390f35b34156104b157600080fd5b6104cb600480803560001916906020019091905050610ec7565b6040518082815260200191505060405180910390f35b34156104ec57600080fd5b610506600480803560001916906020019091905050610eef565b604051808215151515815260200191505060405180910390f35b341561052b57600080fd5b6105456004808035600019169060200190919050506111ed565b6040518082815260200191505060405180910390f35b341561056657600080fd5b610580600480803560001916906020019091905050611215565b6040518082815260200191505060405180910390f35b34156105a157600080fd5b6105c060048080359060200190919080359060200190919050506118f6565b005b34156105cd57600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050611c59565b6040518082815260200191505060405180910390f35b341561062c57600080fd5b610685600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050611da9565b60405180826000191660001916815260200191505060405180910390f35b34156106ae57600080fd5b6106c8600480803560001916906020019091905050612325565b604051808215151515815260200191505060405180910390f35b34156106ed57600080fd5b6107076004808035600019169060200190919050506124b0565b6040518082815260200191505060405180910390f35b341561072857600080fd5b6107426004808035600019169060200190919050506124d8565b6040518082815260200191505060405180910390f35b341561076357600080fd5b61077d6004808035600019169060200190919050506124f0565b6040518082815260200191505060405180910390f35b341561079e57600080fd5b6107b8600480803560001916906020019091905050612518565b6040518082815260200191505060405180910390f35b34156107d957600080fd5b6107e1612540565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082e57600080fd5b610836612566565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006001600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060026000836000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000838152602001908152602001600020600201549050919050565b6000600260008360001916600019168152602001908152602001600020905061094882612325565b156109fc576109f7816003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b5050505050826006015461258c565b610b4b565b610a0582610eef565b15610a1857610a1382612611565b610b4a565b8060050154421115610b4457600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b1957600080fd5b6102c65a03f11515610b2a57600080fd5b505050604051805190501515610b3f57600080fd5b610b49565b600080fd5b5b5b60026000836000191660001916815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000610b8f9190612b80565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556005820160009055600682016000905550505050565b60008060026000846000191660001916815260200190815260200160002060050154119050919050565b610bfe612bc8565b6002600083600019166000191681526020019081526020016000206003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b50505050509050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d5857600080fd5b6102c65a03f11515610d6957600080fd5b505050604051805190501415610d9a5760016000838152602001908152602001600020600201546002029050610dcf565b600160008381526020019081526020016000206000015460016000848152602001908152602001600020600201546002020390505b919050565b600060016000838152602001908152602001600020600301549050919050565b6000806000836040518082805190602001908083835b602083101515610e2f5780518252602082019150602081019050602083039250610e0a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020549050919050565b600060016000838152602001908152602001600020600001549050919050565b60006001600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b6000600260008360001916600019168152602001908152602001600020600101549050919050565b6000610ef9612bdc565b610f01612c36565b60026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fdf5780601f10610fb457610100808354040283529160200191610fdf565b820191906000526020600020905b815481529060010190602001808311610fc257829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509150600160008360200151815260200190815260200160002060a06040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff161515151581526020016002820154815260200160038201548152505090506000826020015111801561112457506000151581604001511515145b80156111e45750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee68483083602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156111c857600080fd5b6102c65a03f115156111d957600080fd5b505050604051805190505b92505050919050565b6000600260008360001916600019168152602001908152602001600020600501549050919050565b600061121f612bdc565b60008060026000866000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113005780601f106112d557610100808354040283529160200191611300565b820191906000526020600020905b8154815290600101906020018083116112e357829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820154815260200160068201548152505092506113b36040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b91506113be85610bcc565b80156113ce575060008360200151145b15156113d957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156114da57600080fd5b6102c65a03f115156114eb57600080fd5b50505060405180519050151561150057600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d6061157c6040805190810160405280600b81526020017f70566f746551756f72756d000000000000000000000000000000000000000000815250610df4565b6115ba6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6115f86040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b151561166057600080fd5b6102c65a03f1151561167157600080fd5b50505060405180519050905060a0604051908101604052806064846116ca6040805190810160405280601081526020017f7044697370656e736174696f6e50637400000000000000000000000000000000815250610df4565b606403028115156116d757fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020018381526020016000815250600160008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055506060820151816002015560808201518160030155905050806002600087600019166000191681526020019081526020016000206001018190555084600019163373ffffffffffffffffffffffffffffffffffffffff167fd712977221af40df1112c545d4b92bb6f0d17e307e19a2d637e569a0ba371f6c83600260008a60001916600019168152602001908152602001600020600301600260008b600019166000191681526020019081526020016000206006015460405180848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118db5780601f106118b0576101008083540402835291602001916118db565b820191906000526020600020905b8154815290600101906020018083116118be57829003601f168201915b505094505050505060405180910390a3809350505050919050565b600080600015156001600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561196c57600080fd5b600115156001600086815260200190815260200160002060010160149054906101000a900460ff1615151415156119a257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611a8357600080fd5b6102c65a03f11515611a9457600080fd5b505050604051805190509150611aab338585611c59565b9050816001600086815260200190815260200160002060030160008282540392505081905550806001600086815260200190815260200160002060000160008282540392505081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bc257600080fd5b6102c65a03f11515611bd357600080fd5b505050604051805190501515611be857600080fd5b600180600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b6000806000806001600087815260200190815260200160002060030154925060016000878152602001908152602001600020600001549150600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611d7257600080fd5b6102c65a03f11515611d8357600080fd5b50505060405180519050905082828202811515611d9c57fe5b0493505050509392505050565b6000806000611dec6040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b915084846040518083805190602001908083835b602083101515611e255780518252602082019150602081019050602083039250611e00565b6001836020036101000a0380198251168184511680821785525050505050509050018281526020019250505060405180910390209050611e6481610bcc565b151515611e7057600080fd5b83611e7a86610df4565b14151515611e8757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611f8857600080fd5b6102c65a03f11515611f9957600080fd5b505050604051805190501515611fae57600080fd5b60e060405190810160405280611ff86040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42018152602001600081526020018381526020018681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200161206c6040805190810160405280600a81526020017f7050726f63657373427900000000000000000000000000000000000000000000815250610df4565b6120aa6040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6120e86040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6121266040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42010101018152602001858152506002600083600019166000191681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003019080519060200190612189929190612c7e565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c08201518160060155905050846040518082805190602001908083835b60208310151561221e57805182526020820191506020810190506020830392506121f9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019163373ffffffffffffffffffffffffffffffffffffffff167f9e6158d6d6f14bba901e5e1c5ef548cfef36dcbd56de51e29a5882f3a13d3cf987878560405180806020018481526020018360001916600019168152602001828103825285818151815260200191508051906020019080838360005b838110156122de5780820151818401526020810190506122c3565b50505050905090810190601f16801561230b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3809250505092915050565b600061232f612bdc565b60026000846000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561240d5780601f106123e25761010080835404028352916020019161240d565b820191906000526020600020905b8154815290600101906020018083116123f057829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160058201548152602001600682015481525050905080600001514211801561249857508060a0015142105b80156124a8575060008160200151145b915050919050565b6000600260008360001916600019168152602001908152602001600020600601549050919050565b60006020528060005260406000206000915090505481565b6000600260008360001916600019168152602001908152602001600020600001549050919050565b6000600260008360001916600019168152602001908152602001600020600201549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600080846040518082805190602001908083835b6020831015156125c657805182526020820191506020810190506020830392506125a1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055505050565b612619612bdc565b60008060026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126fa5780601f106126cf576101008083540402835291602001916126fa565b820191906000526020600020905b8154815290600101906020018083116126dd57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509250600160008460200151815260200190815260200160002091506127958360200151610cbc565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318384602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561283457600080fd5b6102c65a03f1151561284557600080fd5b505050604051805190501561296f57428360a0015111156128735761287283606001518460c0015161258c565b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460800151836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561294457600080fd5b6102c65a03f1151561295557600080fd5b50505060405180519050151561296a57600080fd5b612a9d565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160008660200151815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612a7657600080fd5b6102c65a03f11515612a8757600080fd5b505050604051805190501515612a9c57600080fd5b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a684602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612b3a57600080fd5b6102c65a03f11515612b4b57600080fd5b50505060405180519050826003018190555060018260010160146101000a81548160ff02191690831515021790555050505050565b50805460018160011615610100020316600290046000825580601f10612ba65750612bc5565b601f016020900490600052602060002090810190612bc49190612cfe565b5b50565b602060405190810160405280600081525090565b60e060405190810160405280600081526020016000815260200160008152602001612c05612d23565b8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60a06040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cbf57805160ff1916838001178555612ced565b82800160010185558215612ced579182015b82811115612cec578251825591602001919060010190612cd1565b5b509050612cfa9190612cfe565b5090565b612d2091905b80821115612d1c576000816000905550600101612d04565b5090565b90565b6020604051908101604052806000815250905600a165627a7a72305820c4b62ffd3eafe0ccd13aba4f1750411821b8ed81677e804aabd533ea14f92a430029", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "params", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "contractName": "Parameterizer", + "bytecode": + "0x606060405234156200001057600080fd5b6040516101e0806200338e833981016040528080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919050508e600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001836040805190810160405280600a81526020017f6d696e4465706f736974000000000000000000000000000000000000000000008152508e62000594640100000000026200258c176401000000009004565b620001d86040805190810160405280600b81526020017f704d696e4465706f7369740000000000000000000000000000000000000000008152508d62000594640100000000026200258c176401000000009004565b6200022d6040805190810160405280600d81526020017f6170706c7953746167654c656e000000000000000000000000000000000000008152508c62000594640100000000026200258c176401000000009004565b620002826040805190810160405280600e81526020017f704170706c7953746167654c656e0000000000000000000000000000000000008152508b62000594640100000000026200258c176401000000009004565b620002d76040805190810160405280600e81526020017f636f6d6d697453746167654c656e0000000000000000000000000000000000008152508a62000594640100000000026200258c176401000000009004565b6200032c6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e00000000000000000000000000000000008152508962000594640100000000026200258c176401000000009004565b620003816040805190810160405280600e81526020017f72657665616c53746167654c656e0000000000000000000000000000000000008152508862000594640100000000026200258c176401000000009004565b620003d66040805190810160405280600f81526020017f7052657665616c53746167654c656e00000000000000000000000000000000008152508762000594640100000000026200258c176401000000009004565b6200042b6040805190810160405280600f81526020017f64697370656e736174696f6e50637400000000000000000000000000000000008152508662000594640100000000026200258c176401000000009004565b620004806040805190810160405280601081526020017f7044697370656e736174696f6e506374000000000000000000000000000000008152508562000594640100000000026200258c176401000000009004565b620004d56040805190810160405280600a81526020017f766f746551756f72756d000000000000000000000000000000000000000000008152508462000594640100000000026200258c176401000000009004565b6200052a6040805190810160405280600b81526020017f70566f746551756f72756d0000000000000000000000000000000000000000008152508362000594640100000000026200258c176401000000009004565b6200057f6040805190810160405280600a81526020017f7050726f636573734279000000000000000000000000000000000000000000008152508262000594640100000000026200258c176401000000009004565b5050505050505050505050505050506200061b565b80600080846040518082805190602001908083835b602083101515620005d05780518252602082019150602081019050602083039250620005a9565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055505050565b612d63806200062b6000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806315586cf51461014e57806315c60112146101b1578063186953a61461021857806330490e911461024f57806335300990146102765780634780c3e0146102b557806350411552146103555780635dc4867f1461038c578063693ec85e146103c35780636b244bae14610434578063706f0cb91461046b57806372dbdfd1146104a657806377609a41146104e15780637917cd3e146105205780638240ae4b1461055b57806386bb8f3714610596578063a7aad3db146105c2578063bade1c5414610621578063c51131fb146106a3578063d549bb14146106e2578063dc6ab5271461071d578063f2fe973514610758578063f6ba6a2e14610793578063fc0c546a146107ce578063fce1ccca14610823575b600080fd5b341561015957600080fd5b61016f6004808035906020019091905050610878565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101bc57600080fd5b6101d66004808035600019169060200190919050506108b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561022357600080fd5b6102396004808035906020019091905050610900565b6040518082815260200191505060405180910390f35b341561025a57600080fd5b610274600480803560001916906020019091905050610920565b005b341561028157600080fd5b61029b600480803560001916906020019091905050610bcc565b604051808215151515815260200191505060405180910390f35b34156102c057600080fd5b6102da600480803560001916906020019091905050610bf6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031a5780820151818401526020810190506102ff565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103766004808035906020019091905050610cbc565b6040518082815260200191505060405180910390f35b341561039757600080fd5b6103ad6004808035906020019091905050610dd4565b6040518082815260200191505060405180910390f35b34156103ce57600080fd5b61041e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610df4565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b6104556004808035906020019091905050610e7a565b6040518082815260200191505060405180910390f35b341561047657600080fd5b61048c6004808035906020019091905050610e9a565b604051808215151515815260200191505060405180910390f35b34156104b157600080fd5b6104cb600480803560001916906020019091905050610ec7565b6040518082815260200191505060405180910390f35b34156104ec57600080fd5b610506600480803560001916906020019091905050610eef565b604051808215151515815260200191505060405180910390f35b341561052b57600080fd5b6105456004808035600019169060200190919050506111ed565b6040518082815260200191505060405180910390f35b341561056657600080fd5b610580600480803560001916906020019091905050611215565b6040518082815260200191505060405180910390f35b34156105a157600080fd5b6105c060048080359060200190919080359060200190919050506118f6565b005b34156105cd57600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050611c59565b6040518082815260200191505060405180910390f35b341561062c57600080fd5b610685600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050611da9565b60405180826000191660001916815260200191505060405180910390f35b34156106ae57600080fd5b6106c8600480803560001916906020019091905050612325565b604051808215151515815260200191505060405180910390f35b34156106ed57600080fd5b6107076004808035600019169060200190919050506124b0565b6040518082815260200191505060405180910390f35b341561072857600080fd5b6107426004808035600019169060200190919050506124d8565b6040518082815260200191505060405180910390f35b341561076357600080fd5b61077d6004808035600019169060200190919050506124f0565b6040518082815260200191505060405180910390f35b341561079e57600080fd5b6107b8600480803560001916906020019091905050612518565b6040518082815260200191505060405180910390f35b34156107d957600080fd5b6107e1612540565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082e57600080fd5b610836612566565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006001600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060026000836000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000838152602001908152602001600020600201549050919050565b6000600260008360001916600019168152602001908152602001600020905061094882612325565b156109fc576109f7816003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b5050505050826006015461258c565b610b4b565b610a0582610eef565b15610a1857610a1382612611565b610b4a565b8060050154421115610b4457600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b1957600080fd5b6102c65a03f11515610b2a57600080fd5b505050604051805190501515610b3f57600080fd5b610b49565b600080fd5b5b5b60026000836000191660001916815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000610b8f9190612b80565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556005820160009055600682016000905550505050565b60008060026000846000191660001916815260200190815260200160002060050154119050919050565b610bfe612bc8565b6002600083600019166000191681526020019081526020016000206003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b50505050509050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d5857600080fd5b6102c65a03f11515610d6957600080fd5b505050604051805190501415610d9a5760016000838152602001908152602001600020600201546002029050610dcf565b600160008381526020019081526020016000206000015460016000848152602001908152602001600020600201546002020390505b919050565b600060016000838152602001908152602001600020600301549050919050565b6000806000836040518082805190602001908083835b602083101515610e2f5780518252602082019150602081019050602083039250610e0a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020549050919050565b600060016000838152602001908152602001600020600001549050919050565b60006001600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b6000600260008360001916600019168152602001908152602001600020600101549050919050565b6000610ef9612bdc565b610f01612c36565b60026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fdf5780601f10610fb457610100808354040283529160200191610fdf565b820191906000526020600020905b815481529060010190602001808311610fc257829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509150600160008360200151815260200190815260200160002060a06040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff161515151581526020016002820154815260200160038201548152505090506000826020015111801561112457506000151581604001511515145b80156111e45750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee68483083602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156111c857600080fd5b6102c65a03f115156111d957600080fd5b505050604051805190505b92505050919050565b6000600260008360001916600019168152602001908152602001600020600501549050919050565b600061121f612bdc565b60008060026000866000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113005780601f106112d557610100808354040283529160200191611300565b820191906000526020600020905b8154815290600101906020018083116112e357829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820154815260200160068201548152505092506113b36040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b91506113be85610bcc565b80156113ce575060008360200151145b15156113d957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156114da57600080fd5b6102c65a03f115156114eb57600080fd5b50505060405180519050151561150057600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d6061157c6040805190810160405280600b81526020017f70566f746551756f72756d000000000000000000000000000000000000000000815250610df4565b6115ba6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6115f86040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b151561166057600080fd5b6102c65a03f1151561167157600080fd5b50505060405180519050905060a0604051908101604052806064846116ca6040805190810160405280601081526020017f7044697370656e736174696f6e50637400000000000000000000000000000000815250610df4565b606403028115156116d757fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020018381526020016000815250600160008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055506060820151816002015560808201518160030155905050806002600087600019166000191681526020019081526020016000206001018190555084600019163373ffffffffffffffffffffffffffffffffffffffff167fd712977221af40df1112c545d4b92bb6f0d17e307e19a2d637e569a0ba371f6c83600260008a60001916600019168152602001908152602001600020600301600260008b600019166000191681526020019081526020016000206006015460405180848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118db5780601f106118b0576101008083540402835291602001916118db565b820191906000526020600020905b8154815290600101906020018083116118be57829003601f168201915b505094505050505060405180910390a3809350505050919050565b600080600015156001600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561196c57600080fd5b600115156001600086815260200190815260200160002060010160149054906101000a900460ff1615151415156119a257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611a8357600080fd5b6102c65a03f11515611a9457600080fd5b505050604051805190509150611aab338585611c59565b9050816001600086815260200190815260200160002060030160008282540392505081905550806001600086815260200190815260200160002060000160008282540392505081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bc257600080fd5b6102c65a03f11515611bd357600080fd5b505050604051805190501515611be857600080fd5b600180600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b6000806000806001600087815260200190815260200160002060030154925060016000878152602001908152602001600020600001549150600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611d7257600080fd5b6102c65a03f11515611d8357600080fd5b50505060405180519050905082828202811515611d9c57fe5b0493505050509392505050565b6000806000611dec6040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b915084846040518083805190602001908083835b602083101515611e255780518252602082019150602081019050602083039250611e00565b6001836020036101000a0380198251168184511680821785525050505050509050018281526020019250505060405180910390209050611e6481610bcc565b151515611e7057600080fd5b83611e7a86610df4565b14151515611e8757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611f8857600080fd5b6102c65a03f11515611f9957600080fd5b505050604051805190501515611fae57600080fd5b60e060405190810160405280611ff86040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42018152602001600081526020018381526020018681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200161206c6040805190810160405280600a81526020017f7050726f63657373427900000000000000000000000000000000000000000000815250610df4565b6120aa6040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6120e86040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6121266040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42010101018152602001858152506002600083600019166000191681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003019080519060200190612189929190612c7e565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c08201518160060155905050846040518082805190602001908083835b60208310151561221e57805182526020820191506020810190506020830392506121f9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019163373ffffffffffffffffffffffffffffffffffffffff167f9e6158d6d6f14bba901e5e1c5ef548cfef36dcbd56de51e29a5882f3a13d3cf987878560405180806020018481526020018360001916600019168152602001828103825285818151815260200191508051906020019080838360005b838110156122de5780820151818401526020810190506122c3565b50505050905090810190601f16801561230b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3809250505092915050565b600061232f612bdc565b60026000846000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561240d5780601f106123e25761010080835404028352916020019161240d565b820191906000526020600020905b8154815290600101906020018083116123f057829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160058201548152602001600682015481525050905080600001514211801561249857508060a0015142105b80156124a8575060008160200151145b915050919050565b6000600260008360001916600019168152602001908152602001600020600601549050919050565b60006020528060005260406000206000915090505481565b6000600260008360001916600019168152602001908152602001600020600001549050919050565b6000600260008360001916600019168152602001908152602001600020600201549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600080846040518082805190602001908083835b6020831015156125c657805182526020820191506020810190506020830392506125a1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055505050565b612619612bdc565b60008060026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126fa5780601f106126cf576101008083540402835291602001916126fa565b820191906000526020600020905b8154815290600101906020018083116126dd57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509250600160008460200151815260200190815260200160002091506127958360200151610cbc565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318384602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561283457600080fd5b6102c65a03f1151561284557600080fd5b505050604051805190501561296f57428360a0015111156128735761287283606001518460c0015161258c565b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460800151836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561294457600080fd5b6102c65a03f1151561295557600080fd5b50505060405180519050151561296a57600080fd5b612a9d565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160008660200151815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612a7657600080fd5b6102c65a03f11515612a8757600080fd5b505050604051805190501515612a9c57600080fd5b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a684602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612b3a57600080fd5b6102c65a03f11515612b4b57600080fd5b50505060405180519050826003018190555060018260010160146101000a81548160ff02191690831515021790555050505050565b50805460018160011615610100020316600290046000825580601f10612ba65750612bc5565b601f016020900490600052602060002090810190612bc49190612cfe565b5b50565b602060405190810160405280600081525090565b60e060405190810160405280600081526020016000815260200160008152602001612c05612d23565b8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60a06040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cbf57805160ff1916838001178555612ced565b82800160010185558215612ced579182015b82811115612cec578251825591602001919060010190612cd1565b5b509050612cfa9190612cfe565b5090565b612d2091905b80821115612d1c576000816000905550600101612d04565b5090565b90565b6020604051908101604052806000815250905600a165627a7a72305820c4b62ffd3eafe0ccd13aba4f1750411821b8ed81677e804aabd533ea14f92a430029", + "deployedBytecode": + "0x606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806315586cf51461014e57806315c60112146101b1578063186953a61461021857806330490e911461024f57806335300990146102765780634780c3e0146102b557806350411552146103555780635dc4867f1461038c578063693ec85e146103c35780636b244bae14610434578063706f0cb91461046b57806372dbdfd1146104a657806377609a41146104e15780637917cd3e146105205780638240ae4b1461055b57806386bb8f3714610596578063a7aad3db146105c2578063bade1c5414610621578063c51131fb146106a3578063d549bb14146106e2578063dc6ab5271461071d578063f2fe973514610758578063f6ba6a2e14610793578063fc0c546a146107ce578063fce1ccca14610823575b600080fd5b341561015957600080fd5b61016f6004808035906020019091905050610878565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101bc57600080fd5b6101d66004808035600019169060200190919050506108b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561022357600080fd5b6102396004808035906020019091905050610900565b6040518082815260200191505060405180910390f35b341561025a57600080fd5b610274600480803560001916906020019091905050610920565b005b341561028157600080fd5b61029b600480803560001916906020019091905050610bcc565b604051808215151515815260200191505060405180910390f35b34156102c057600080fd5b6102da600480803560001916906020019091905050610bf6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031a5780820151818401526020810190506102ff565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103766004808035906020019091905050610cbc565b6040518082815260200191505060405180910390f35b341561039757600080fd5b6103ad6004808035906020019091905050610dd4565b6040518082815260200191505060405180910390f35b34156103ce57600080fd5b61041e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610df4565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b6104556004808035906020019091905050610e7a565b6040518082815260200191505060405180910390f35b341561047657600080fd5b61048c6004808035906020019091905050610e9a565b604051808215151515815260200191505060405180910390f35b34156104b157600080fd5b6104cb600480803560001916906020019091905050610ec7565b6040518082815260200191505060405180910390f35b34156104ec57600080fd5b610506600480803560001916906020019091905050610eef565b604051808215151515815260200191505060405180910390f35b341561052b57600080fd5b6105456004808035600019169060200190919050506111ed565b6040518082815260200191505060405180910390f35b341561056657600080fd5b610580600480803560001916906020019091905050611215565b6040518082815260200191505060405180910390f35b34156105a157600080fd5b6105c060048080359060200190919080359060200190919050506118f6565b005b34156105cd57600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050611c59565b6040518082815260200191505060405180910390f35b341561062c57600080fd5b610685600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050611da9565b60405180826000191660001916815260200191505060405180910390f35b34156106ae57600080fd5b6106c8600480803560001916906020019091905050612325565b604051808215151515815260200191505060405180910390f35b34156106ed57600080fd5b6107076004808035600019169060200190919050506124b0565b6040518082815260200191505060405180910390f35b341561072857600080fd5b6107426004808035600019169060200190919050506124d8565b6040518082815260200191505060405180910390f35b341561076357600080fd5b61077d6004808035600019169060200190919050506124f0565b6040518082815260200191505060405180910390f35b341561079e57600080fd5b6107b8600480803560001916906020019091905050612518565b6040518082815260200191505060405180910390f35b34156107d957600080fd5b6107e1612540565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082e57600080fd5b610836612566565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006001600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060026000836000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000838152602001908152602001600020600201549050919050565b6000600260008360001916600019168152602001908152602001600020905061094882612325565b156109fc576109f7816003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b5050505050826006015461258c565b610b4b565b610a0582610eef565b15610a1857610a1382612611565b610b4a565b8060050154421115610b4457600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b1957600080fd5b6102c65a03f11515610b2a57600080fd5b505050604051805190501515610b3f57600080fd5b610b49565b600080fd5b5b5b60026000836000191660001916815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000610b8f9190612b80565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556005820160009055600682016000905550505050565b60008060026000846000191660001916815260200190815260200160002060050154119050919050565b610bfe612bc8565b6002600083600019166000191681526020019081526020016000206003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b50505050509050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a6846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d5857600080fd5b6102c65a03f11515610d6957600080fd5b505050604051805190501415610d9a5760016000838152602001908152602001600020600201546002029050610dcf565b600160008381526020019081526020016000206000015460016000848152602001908152602001600020600201546002020390505b919050565b600060016000838152602001908152602001600020600301549050919050565b6000806000836040518082805190602001908083835b602083101515610e2f5780518252602082019150602081019050602083039250610e0a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020549050919050565b600060016000838152602001908152602001600020600001549050919050565b60006001600083815260200190815260200160002060010160149054906101000a900460ff169050919050565b6000600260008360001916600019168152602001908152602001600020600101549050919050565b6000610ef9612bdc565b610f01612c36565b60026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fdf5780601f10610fb457610100808354040283529160200191610fdf565b820191906000526020600020905b815481529060010190602001808311610fc257829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509150600160008360200151815260200190815260200160002060a06040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff161515151581526020016002820154815260200160038201548152505090506000826020015111801561112457506000151581604001511515145b80156111e45750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee68483083602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156111c857600080fd5b6102c65a03f115156111d957600080fd5b505050604051805190505b92505050919050565b6000600260008360001916600019168152602001908152602001600020600501549050919050565b600061121f612bdc565b60008060026000866000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113005780601f106112d557610100808354040283529160200191611300565b820191906000526020600020905b8154815290600101906020018083116112e357829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820154815260200160068201548152505092506113b36040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b91506113be85610bcc565b80156113ce575060008360200151145b15156113d957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156114da57600080fd5b6102c65a03f115156114eb57600080fd5b50505060405180519050151561150057600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ed3d6061157c6040805190810160405280600b81526020017f70566f746551756f72756d000000000000000000000000000000000000000000815250610df4565b6115ba6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6115f86040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b151561166057600080fd5b6102c65a03f1151561167157600080fd5b50505060405180519050905060a0604051908101604052806064846116ca6040805190810160405280601081526020017f7044697370656e736174696f6e50637400000000000000000000000000000000815250610df4565b606403028115156116d757fe5b0481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020018381526020016000815250600160008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055506060820151816002015560808201518160030155905050806002600087600019166000191681526020019081526020016000206001018190555084600019163373ffffffffffffffffffffffffffffffffffffffff167fd712977221af40df1112c545d4b92bb6f0d17e307e19a2d637e569a0ba371f6c83600260008a60001916600019168152602001908152602001600020600301600260008b600019166000191681526020019081526020016000206006015460405180848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118db5780601f106118b0576101008083540402835291602001916118db565b820191906000526020600020905b8154815290600101906020018083116118be57829003601f168201915b505094505050505060405180910390a3809350505050919050565b600080600015156001600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561196c57600080fd5b600115156001600086815260200190815260200160002060010160149054906101000a900460ff1615151415156119a257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7338686600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611a8357600080fd5b6102c65a03f11515611a9457600080fd5b505050604051805190509150611aab338585611c59565b9050816001600086815260200190815260200160002060030160008282540392505081905550806001600086815260200190815260200160002060000160008282540392505081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bc257600080fd5b6102c65a03f11515611bd357600080fd5b505050604051805190501515611be857600080fd5b600180600086815260200190815260200160002060040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b6000806000806001600087815260200190815260200160002060030154925060016000878152602001908152602001600020600001549150600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee8badd7888888600080604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182151515158152602001945050505050602060405180830381600087803b1515611d7257600080fd5b6102c65a03f11515611d8357600080fd5b50505060405180519050905082828202811515611d9c57fe5b0493505050509392505050565b6000806000611dec6040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610df4565b915084846040518083805190602001908083835b602083101515611e255780518252602082019150602081019050602083039250611e00565b6001836020036101000a0380198251168184511680821785525050505050509050018281526020019250505060405180910390209050611e6481610bcc565b151515611e7057600080fd5b83611e7a86610df4565b14151515611e8757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611f8857600080fd5b6102c65a03f11515611f9957600080fd5b505050604051805190501515611fae57600080fd5b60e060405190810160405280611ff86040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42018152602001600081526020018381526020018681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200161206c6040805190810160405280600a81526020017f7050726f63657373427900000000000000000000000000000000000000000000815250610df4565b6120aa6040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610df4565b6120e86040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610df4565b6121266040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610df4565b42010101018152602001858152506002600083600019166000191681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003019080519060200190612189929190612c7e565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c08201518160060155905050846040518082805190602001908083835b60208310151561221e57805182526020820191506020810190506020830392506121f9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019163373ffffffffffffffffffffffffffffffffffffffff167f9e6158d6d6f14bba901e5e1c5ef548cfef36dcbd56de51e29a5882f3a13d3cf987878560405180806020018481526020018360001916600019168152602001828103825285818151815260200191508051906020019080838360005b838110156122de5780820151818401526020810190506122c3565b50505050905090810190601f16801561230b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3809250505092915050565b600061232f612bdc565b60026000846000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561240d5780601f106123e25761010080835404028352916020019161240d565b820191906000526020600020905b8154815290600101906020018083116123f057829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160058201548152602001600682015481525050905080600001514211801561249857508060a0015142105b80156124a8575060008160200151145b915050919050565b6000600260008360001916600019168152602001908152602001600020600601549050919050565b60006020528060005260406000206000915090505481565b6000600260008360001916600019168152602001908152602001600020600001549050919050565b6000600260008360001916600019168152602001908152602001600020600201549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600080846040518082805190602001908083835b6020831015156125c657805182526020820191506020810190506020830392506125a1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020819055505050565b612619612bdc565b60008060026000856000191660001916815260200190815260200160002060e06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126fa5780601f106126cf576101008083540402835291602001916126fa565b820191906000526020600020905b8154815290600101906020018083116126dd57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820154815250509250600160008460200151815260200190815260200160002091506127958360200151610cbc565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634940318384602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561283457600080fd5b6102c65a03f1151561284557600080fd5b505050604051805190501561296f57428360a0015111156128735761287283606001518460c0015161258c565b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460800151836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561294457600080fd5b6102c65a03f1151561295557600080fd5b50505060405180519050151561296a57600080fd5b612a9d565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160008660200151815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612a7657600080fd5b6102c65a03f11515612a8757600080fd5b505050604051805190501515612a9c57600080fd5b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053e71a684602001516000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612b3a57600080fd5b6102c65a03f11515612b4b57600080fd5b50505060405180519050826003018190555060018260010160146101000a81548160ff02191690831515021790555050505050565b50805460018160011615610100020316600290046000825580601f10612ba65750612bc5565b601f016020900490600052602060002090810190612bc49190612cfe565b5b50565b602060405190810160405280600081525090565b60e060405190810160405280600081526020016000815260200160008152602001612c05612d23565b8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60a06040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cbf57805160ff1916838001178555612ced565b82800160010185558215612ced579182015b82811115612cec578251825591602001919060010190612cd1565b5b509050612cfa9190612cfe565b5090565b612d2091905b80821115612d1c576000816000905550600101612d04565b5090565b90565b6020604051908101604052806000815250905600a165627a7a72305820c4b62ffd3eafe0ccd13aba4f1750411821b8ed81677e804aabd533ea14f92a430029", + "abi": [ + { + "constant": true, + "inputs": [ { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, + "name": "", + "type": "bytes32" + } + ], + "name": "params", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "voting", + "outputs": [ { - "constant": true, - "inputs": [], - "name": "voting", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_tokenAddr", + "type": "address" }, { - "inputs": [ - { - "name": "_tokenAddr", - "type": "address" - }, - { - "name": "_plcrAddr", - "type": "address" - }, - { - "name": "_minDeposit", - "type": "uint256" - }, - { - "name": "_pMinDeposit", - "type": "uint256" - }, - { - "name": "_applyStageLen", - "type": "uint256" - }, - { - "name": "_pApplyStageLen", - "type": "uint256" - }, - { - "name": "_commitStageLen", - "type": "uint256" - }, - { - "name": "_pCommitStageLen", - "type": "uint256" - }, - { - "name": "_revealStageLen", - "type": "uint256" - }, - { - "name": "_pRevealStageLen", - "type": "uint256" - }, - { - "name": "_dispensationPct", - "type": "uint256" - }, - { - "name": "_pDispensationPct", - "type": "uint256" - }, - { - "name": "_voteQuorum", - "type": "uint256" - }, - { - "name": "_pVoteQuorum", - "type": "uint256" - }, - { - "name": "_pProcessBy", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" + "name": "_plcrAddr", + "type": "address" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposer", - "type": "address" - }, - { - "indexed": true, - "name": "paramNameHash", - "type": "bytes32" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "name": "propID", - "type": "bytes32" - } - ], - "name": "ReparameterizationProposal", - "type": "event" + "name": "_minDeposit", + "type": "uint256" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "challenger", - "type": "address" - }, - { - "indexed": true, - "name": "propID", - "type": "bytes32" - }, - { - "indexed": false, - "name": "pollID", - "type": "uint256" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "NewChallenge", - "type": "event" + "name": "_pMinDeposit", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "proposeReparameterization", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_applyStageLen", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "challengeReparameterization", - "outputs": [ - { - "name": "challengeID", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_pApplyStageLen", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "processProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_commitStageLen", + "type": "uint256" }, { - "constant": false, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - }, - { - "name": "_salt", - "type": "uint256" - } - ], - "name": "claimReward", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" + "name": "_pCommitStageLen", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropAppExpiry", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_revealStageLen", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropChallengeID", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pRevealStageLen", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropDeposit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_dispensationPct", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropName", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pDispensationPct", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_voteQuorum", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropProcessBy", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pVoteQuorum", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "getPropValue", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_pProcessBy", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposer", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - } - ], - "name": "getChallengeRewardPool", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": true, + "name": "paramNameHash", + "type": "bytes32" }, { - "constant": true, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - } - ], - "name": "getChallengeChallenger", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "name", + "type": "string" }, { - "constant": true, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - } - ], - "name": "getChallengeResolved", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "value", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - } - ], - "name": "getChallengeStake", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "propID", + "type": "bytes32" + } + ], + "name": "ReparameterizationProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "challenger", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - } - ], - "name": "getChallengeWinningTokens", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": true, + "name": "propID", + "type": "bytes32" }, { - "constant": true, - "inputs": [ - { - "name": "_voter", - "type": "address" - }, - { - "name": "_challengeID", - "type": "uint256" - }, - { - "name": "_salt", - "type": "uint256" - } - ], - "name": "voterReward", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "pollID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "canBeSet", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "name", + "type": "string" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "propExists", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "NewChallenge", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_name", + "type": "string" }, { - "constant": true, - "inputs": [ - { - "name": "_propID", - "type": "bytes32" - } - ], - "name": "challengeCanBeResolved", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_value", + "type": "uint256" + } + ], + "name": "proposeReparameterization", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "challengeReparameterization", + "outputs": [ + { + "name": "challengeID", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "processProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" }, { - "constant": true, - "inputs": [ - { - "name": "_challengeID", - "type": "uint256" - } - ], - "name": "challengeWinnerReward", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" + "name": "_salt", + "type": "uint256" + } + ], + "name": "claimReward", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropAppExpiry", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropChallengeID", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropDeposit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropName", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropProcessBy", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "getPropValue", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" + } + ], + "name": "getChallengeRewardPool", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" + } + ], + "name": "getChallengeChallenger", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" + } + ], + "name": "getChallengeResolved", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" + } + ], + "name": "getChallengeStake", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" + } + ], + "name": "getChallengeWinningTokens", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_voter", + "type": "address" }, { - "constant": true, - "inputs": [ - { - "name": "_name", - "type": "string" - } - ], - "name": "get", - "outputs": [ - { - "name": "value", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xc443c63377818f5a39cf57d2f29616b23f132d96", - "transactionHash": "0xcb3c590c3db90ef067e0b88d4fee0b50283c798c8aeb142e55a0ce71cdd4317a" + "name": "_challengeID", + "type": "uint256" }, - "50": { - "events": {}, - "links": {}, - "address": "0x88bcdbbde058c06bd5e89ce97e3bb2d7624e673a", - "transactionHash": "0x8cb4e0d433a8020f68ab3468c1adc1fcbab07af5121e93e52fa51e159d670777" + { + "name": "_salt", + "type": "uint256" + } + ], + "name": "voterReward", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "canBeSet", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "propExists", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_propID", + "type": "bytes32" + } + ], + "name": "challengeCanBeResolved", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_challengeID", + "type": "uint256" + } + ], + "name": "challengeWinnerReward", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_name", + "type": "string" } + ], + "name": "get", + "outputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0xc443c63377818f5a39cf57d2f29616b23f132d96", + "transactionHash": "0xcb3c590c3db90ef067e0b88d4fee0b50283c798c8aeb142e55a0ce71cdd4317a" + }, + "50": { + "events": {}, + "links": {}, + "address": "0x88bcdbbde058c06bd5e89ce97e3bb2d7624e673a", + "transactionHash": "0x8cb4e0d433a8020f68ab3468c1adc1fcbab07af5121e93e52fa51e159d670777" } -} \ No newline at end of file + } +} diff --git a/packages/core/src/civil.ts b/packages/core/src/civil.ts index 5dfdde1742..86cc6d8387 100644 --- a/packages/core/src/civil.ts +++ b/packages/core/src/civil.ts @@ -42,7 +42,7 @@ export class Civil { if (opts.debug === true) { Debug.enable("civil:*"); - debug("Enabled debug for \"civil:*\" namespace"); + debug('Enabled debug for "civil:*" namespace'); } if (opts.web3Provider) { diff --git a/packages/core/src/content/contentprovider.ts b/packages/core/src/content/contentprovider.ts index 9c0394b288..9b33dd4001 100644 --- a/packages/core/src/content/contentprovider.ts +++ b/packages/core/src/content/contentprovider.ts @@ -2,6 +2,6 @@ import { ContentHeader, Uri } from "../types"; export interface ContentProvider { scheme(): string; - get(what: Uri|ContentHeader): Promise; + get(what: Uri | ContentHeader): Promise; put(content: string): Promise; } diff --git a/packages/core/src/content/inmemoryprovider.ts b/packages/core/src/content/inmemoryprovider.ts index a4d53f594e..8043ccc556 100644 --- a/packages/core/src/content/inmemoryprovider.ts +++ b/packages/core/src/content/inmemoryprovider.ts @@ -1,4 +1,4 @@ -import { ContentHeader, MapObject, Uri} from "../types"; +import { ContentHeader, MapObject, Uri } from "../types"; import { Web3Wrapper } from "../utils/web3wrapper"; import { ContentProvider } from "./contentprovider"; @@ -14,7 +14,7 @@ export class InMemoryProvider implements ContentProvider { return "memory"; } - public async get(what: Uri|ContentHeader): Promise { + public async get(what: Uri | ContentHeader): Promise { let uri = ""; if (typeof what !== "string") { uri = what.uri; diff --git a/packages/core/src/contracts/eip20.ts b/packages/core/src/contracts/eip20.ts index 6028267f2a..8a34e415e7 100644 --- a/packages/core/src/contracts/eip20.ts +++ b/packages/core/src/contracts/eip20.ts @@ -1,13 +1,8 @@ import BigNumber from "bignumber.js"; import "@joincivil/utils"; -import { - EthAddress, - TwoStepEthTransaction, -} from "../types"; -import { - createTwoStepSimple, -} from "../utils/contractutils"; +import { EthAddress, TwoStepEthTransaction } from "../types"; +import { createTwoStepSimple } from "../utils/contractutils"; import { requireAccount } from "../utils/errors"; import { Web3Wrapper } from "../utils/web3wrapper"; import { BaseWrapper } from "./basewrapper"; @@ -35,14 +30,8 @@ export class EIP20 extends BaseWrapper { * @param spender address to approve as spender of tokens * @param numTokens number of tokens to approve for spender to spend on user's behalf */ - public async approveSpender( - spender: EthAddress, - numTokens: BigNumber, - ): Promise { - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.approve.sendTransactionAsync(spender, numTokens), - ); + public async approveSpender(spender: EthAddress, numTokens: BigNumber): Promise { + return createTwoStepSimple(this.web3Wrapper, await this.instance.approve.sendTransactionAsync(spender, numTokens)); } /** @@ -53,10 +42,7 @@ export class EIP20 extends BaseWrapper { * Get number of approved tokens for spender * @param spender spender to check approved tokens for */ - public async getApprovedTokensForSpender( - spender: EthAddress, - tokenOwner?: EthAddress, - ): Promise { + public async getApprovedTokensForSpender(spender: EthAddress, tokenOwner?: EthAddress): Promise { let who = tokenOwner; if (!who) { who = requireAccount(this.web3Wrapper); @@ -68,14 +54,11 @@ export class EIP20 extends BaseWrapper { * Check the token balance of an address * @param address address to check balance of */ - public async getBalance( - tokenOwner?: EthAddress, - ): Promise { + public async getBalance(tokenOwner?: EthAddress): Promise { let who = tokenOwner; if (!who) { who = requireAccount(this.web3Wrapper); } return this.instance.balanceOf.callAsync(who); } - } diff --git a/packages/core/src/contracts/multisig.ts b/packages/core/src/contracts/multisig.ts index 7f2eab6f7c..0fdabb9def 100644 --- a/packages/core/src/contracts/multisig.ts +++ b/packages/core/src/contracts/multisig.ts @@ -21,10 +21,8 @@ export class Multisig extends BaseWrapper { ): Promise> { return createTwoStepTransaction( web3Wrapper, - await MultiSigWalletContract - .deployTrusted - .sendTransactionAsync(web3Wrapper, owners, new BigNumber(required)), - (receipt) => new Multisig(web3Wrapper, MultiSigWalletContract.atUntrusted(web3Wrapper, receipt.contractAddress!)), + await MultiSigWalletContract.deployTrusted.sendTransactionAsync(web3Wrapper, owners, new BigNumber(required)), + receipt => new Multisig(web3Wrapper, MultiSigWalletContract.atUntrusted(web3Wrapper, receipt.contractAddress!)), ); } @@ -155,8 +153,8 @@ export class Multisig extends BaseWrapper { return createTwoStepTransaction( this.web3Wrapper, await this.instance.submitTransaction.sendTransactionAsync(address, weiToSend, payload), - async (receipt) => { - const event = receipt.logs.filter(isDecodedLog).find((log) => log.event === MultiSigWalletEvents.Submission); + async receipt => { + const event = receipt.logs.filter(isDecodedLog).find(log => log.event === MultiSigWalletEvents.Submission); if (!event) { throw new Error("No Submisison event found when adding transaction to Multisig"); } @@ -170,9 +168,10 @@ export class Multisig extends BaseWrapper { * @param filters Change which transactions are counted. */ public async transactionCount(filters: TransactionFilters = { pending: true }): Promise { - return (await this.instance - .getTransactionCount.callAsync(filters.pending || false, filters.executed || false)) - .toNumber(); + return (await this.instance.getTransactionCount.callAsync( + filters.pending || false, + filters.executed || false, + )).toNumber(); } // TODO(ritave): Support pagination @@ -183,20 +182,19 @@ export class Multisig extends BaseWrapper { * order of ids, starting from id 0. * @param filters What kind of transactions to return */ - public transactions( - filters: TransactionFilters = { pending: true }, - ): Observable { - // Notice that we're using transactionCount smart-contract variable, not getTransactonCount func - return Observable - .fromPromise(this.instance.transactionCount.callAsync()) - .concatMap(async (noTransactions) => + public transactions(filters: TransactionFilters = { pending: true }): Observable { + // Notice that we're using transactionCount smart-contract variable, not getTransactonCount func + return Observable.fromPromise(this.instance.transactionCount.callAsync()) + .concatMap(async noTransactions => this.instance.getTransactionIds.callAsync( new BigNumber(0), noTransactions, filters.pending || false, - filters.executed || false)) - .concatMap((ids) => Observable.from(ids)) - .concatMap(async (id) => this.transaction(id.toNumber())); + filters.executed || false, + ), + ) + .concatMap(ids => Observable.from(ids)) + .concatMap(async id => this.transaction(id.toNumber())); } /** @@ -209,7 +207,7 @@ export class Multisig extends BaseWrapper { private async requireOwner(who?: EthAddress): Promise { const owner = who || this.web3Wrapper.account; - if (!(await this.isOwner(owner))) { + if (!await this.isOwner(owner)) { throw new Error(CivilErrors.NoPrivileges); } } @@ -275,7 +273,7 @@ export class MultisigTransaction { return createTwoStepTransaction( this.web3Wrapper, await this.instance.executeTransaction.sendTransactionAsync(new BigNumber(this.id)), - async (receipt) => transactionFromId(this.web3Wrapper, this.instance, this.id), + async receipt => transactionFromId(this.web3Wrapper, this.instance, this.id), ); } @@ -288,7 +286,7 @@ export class MultisigTransaction { return createTwoStepTransaction( this.web3Wrapper, await this.instance.confirmTransaction.sendTransactionAsync(new BigNumber(this.id)), - (receipt) => this, + receipt => this, ); } /** @@ -299,7 +297,7 @@ export class MultisigTransaction { return createTwoStepTransaction( this.web3Wrapper, await this.instance.revokeConfirmation.sendTransactionAsync(new BigNumber(this.id)), - (receipt) => this, + receipt => this, ); } } @@ -311,15 +309,10 @@ async function transactionFromId( ): Promise { const data = await instance.transactions.callAsync(new BigNumber(id)); - return new MultisigTransaction( - web3Wrapper, - instance, - id, - { - destination: data[0], - value: data[1], - data: data[2], - executed: data[3], - }, - ); + return new MultisigTransaction(web3Wrapper, instance, id, { + destination: data[0], + value: data[1], + data: data[2], + executed: data[3], + }); } diff --git a/packages/core/src/contracts/newsroom.ts b/packages/core/src/contracts/newsroom.ts index d25c83b4f4..989453a9e8 100644 --- a/packages/core/src/contracts/newsroom.ts +++ b/packages/core/src/contracts/newsroom.ts @@ -4,14 +4,7 @@ import * as Web3 from "web3"; import "@joincivil/utils"; import { ContentProvider } from "../content/contentprovider"; -import { - ContentHeader, - EthAddress, - NewsroomContent, - TxData, - TwoStepEthTransaction, - ContentId, -} from "../types"; +import { ContentHeader, EthAddress, NewsroomContent, TxData, TwoStepEthTransaction, ContentId } from "../types"; import { isDecodedLog, createTwoStepTransaction, createTwoStepSimple } from "../utils/contractutils"; import { CivilErrors, requireAccount } from "../utils/errors"; import { Web3Wrapper } from "../utils/web3wrapper"; @@ -40,11 +33,8 @@ export class Newsroom extends BaseWrapper { return createTwoStepTransaction( web3Wrapper, await NewsroomContract.deployTrusted.sendTransactionAsync(web3Wrapper, newsroomName, txData), - (receipt) => new Newsroom( - web3Wrapper, - contentProvider, - NewsroomContract.atUntrusted(web3Wrapper, receipt.contractAddress!), - ), + receipt => + new Newsroom(web3Wrapper, contentProvider, NewsroomContract.atUntrusted(web3Wrapper, receipt.contractAddress!)), ); } public static atUntrusted(web3Wrapper: Web3Wrapper, contentProvider: ContentProvider, address: EthAddress): Newsroom { @@ -121,10 +111,7 @@ export class Newsroom extends BaseWrapper { public async addRole(actor: EthAddress, role: Roles): Promise { await this.requireEditor(); - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.addRole.sendTransactionAsync(actor, role), - ); + return createTwoStepSimple(this.web3Wrapper, await this.instance.addRole.sendTransactionAsync(actor, role)); } /** @@ -138,10 +125,7 @@ export class Newsroom extends BaseWrapper { public async removeRole(actor: EthAddress, role: Roles): Promise { await this.requireEditor(); - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.removeRole.sendTransactionAsync(actor, role), - ); + return createTwoStepSimple(this.web3Wrapper, await this.instance.removeRole.sendTransactionAsync(actor, role)); } /** @@ -155,10 +139,7 @@ export class Newsroom extends BaseWrapper { public async setName(newName: string): Promise { await this.requireOwner(); - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.setName.sendTransactionAsync(newName), - ); + return createTwoStepSimple(this.web3Wrapper, await this.instance.setName.sendTransactionAsync(newName)); } /** @@ -167,12 +148,12 @@ export class Newsroom extends BaseWrapper { * Set to "latest" for only new events * @returns Metadata about the content from Ethereum. Use [[resolveContent]] to get actual contents */ - public proposedContent(fromBlock: number|"latest" = 0): Observable { + public proposedContent(fromBlock: number | "latest" = 0): Observable { return this.instance .ContentProposedStream({}, { fromBlock }) - .map((e) => e.args.id) - .concatFilter(async (id) => this.instance.isProposed.callAsync(id)) - .concatMap(async (id) => this.loadArticleHeader(id)); + .map(e => e.args.id) + .concatFilter(async id => this.instance.isProposed.callAsync(id)) + .concatMap(async id => this.loadArticleHeader(id)); } /** @@ -181,11 +162,11 @@ export class Newsroom extends BaseWrapper { * Set to "latest" to only listen for new events * @returns Metadata about the content from Ethereum. Use [[resolveContent]] to get actual contents */ - public approvedContent(fromBlock: number|"latest" = 0): Observable { + public approvedContent(fromBlock: number | "latest" = 0): Observable { return this.instance .ContentApprovedStream({}, { fromBlock }) - .map((e) => e.args.id) - .concatMap(async (id) => this.loadArticleHeader(id)); + .map(e => e.args.id) + .concatMap(async id => this.loadArticleHeader(id)); } /** @@ -194,10 +175,8 @@ export class Newsroom extends BaseWrapper { * Set to "latest" to only listen for new events * @returns Name history of this Newsroom */ - public nameChanges(fromBlock: number|"latest" = 0): Observable { - return this.instance - .NameChangedStream({}, { fromBlock }) - .map((e) => e.args.newName); + public nameChanges(fromBlock: number | "latest" = 0): Observable { + return this.instance.NameChangedStream({}, { fromBlock }).map(e => e.args.newName); } /** @@ -205,7 +184,7 @@ export class Newsroom extends BaseWrapper { * Accesess both Ethereum network as well as the active ContentProvider * @param articleId Id of the article that you want to read */ - public async loadArticle(articleId: number|BigNumber): Promise { + public async loadArticle(articleId: number | BigNumber): Promise { const header = await this.loadArticleHeader(articleId); return this.resolveContent(header); } @@ -214,7 +193,7 @@ export class Newsroom extends BaseWrapper { * Accesses the Ethereum network and loads basic metatadata about the article * @param articleId Id of the article whose metadata you need */ - public async loadArticleHeader(articleId: number|BigNumber): Promise { + public async loadArticleHeader(articleId: number | BigNumber): Promise { const id = new BigNumber(articleId); const [author, timestamp, uri] = await Promise.all([ @@ -253,7 +232,7 @@ export class Newsroom extends BaseWrapper { return createTwoStepTransaction( this.web3Wrapper, await this.instance.proposeContent.sendTransactionAsync(uri), - (receipt) => { + receipt => { for (const log of receipt.logs) { if (isDecodedLog(log) && log.event === NewsroomEvents.ContentProposed) { return (log as Web3.DecodedLogEntry).args.id.toNumber(); @@ -268,7 +247,7 @@ export class Newsroom extends BaseWrapper { * Allows the Editor to approve content that is waiting to be approved / denied * @param contentId The id of the proposed content to be denied */ - public async approveContent(contentId: ContentId|BigNumber): Promise { + public async approveContent(contentId: ContentId | BigNumber): Promise { await this.requireEditor(); return createTwoStepSimple( @@ -281,7 +260,7 @@ export class Newsroom extends BaseWrapper { * Allows the Editor to deny content that is waiting to be approverd / denied * @param contentId The id of the proposed content to be denied */ - public async denyContent(contentId: number|BigNumber): Promise { + public async denyContent(contentId: number | BigNumber): Promise { await this.requireEditor(); return createTwoStepSimple( @@ -308,19 +287,19 @@ export class Newsroom extends BaseWrapper { } private async requireEditor(): Promise { - if (!(await this.isEditor())) { + if (!await this.isEditor()) { throw new Error(CivilErrors.NoPrivileges); } } private async requireReporter(): Promise { - if (!(await this.isReporter())) { + if (!await this.isReporter()) { throw new Error(CivilErrors.NoPrivileges); } } private async requireOwner(): Promise { - if (!(await this.isOwner())) { + if (!await this.isOwner()) { throw new Error(CivilErrors.NoPrivileges); } } diff --git a/packages/core/src/contracts/ownedAddressTCRWithAppeals.ts b/packages/core/src/contracts/ownedAddressTCRWithAppeals.ts index 652fcc6cd0..a0e8163985 100644 --- a/packages/core/src/contracts/ownedAddressTCRWithAppeals.ts +++ b/packages/core/src/contracts/ownedAddressTCRWithAppeals.ts @@ -4,14 +4,8 @@ import * as Debug from "debug"; import "@joincivil/utils"; import { ContentProvider } from "../content/contentprovider"; -import { - EthAddress, - ListingState, - TwoStepEthTransaction, -} from "../types"; -import { - createTwoStepSimple, -} from "../utils/contractutils"; +import { EthAddress, ListingState, TwoStepEthTransaction } from "../types"; +import { createTwoStepSimple } from "../utils/contractutils"; import { CivilErrors, requireAccount } from "../utils/errors"; import { Web3Wrapper } from "../utils/web3wrapper"; import { BaseWrapper } from "./basewrapper"; @@ -32,11 +26,7 @@ const debug = Debug("civil:tcr"); * as collect winnings related to challenges, or withdraw/deposit tokens from listings. */ export class OwnedAddressTCRWithAppeals extends BaseWrapper { - - public static singleton( - web3Wrapper: Web3Wrapper, - contentProvider: ContentProvider, - ): OwnedAddressTCRWithAppeals { + public static singleton(web3Wrapper: Web3Wrapper, contentProvider: ContentProvider): OwnedAddressTCRWithAppeals { const instance = OwnedAddressTCRWithAppealsContract.singletonTrusted(web3Wrapper); if (!instance) { debug("Smart-contract wrapper for TCR returned null, unsupported network"); @@ -100,11 +90,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public whitelistedListings(fromBlock: number | "latest" = 0): Observable { return this.instance .NewListingWhitelistedStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.instance.getListingIsWhitelisted.callAsync(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.instance.getListingIsWhitelisted.callAsync(listingAddress)); } /** @@ -113,11 +103,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public listingsInApplicationStage(fromBlock: number | "latest" = 0): Observable { return this.instance .ApplicationStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.isInApplicationPhase(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.isInApplicationPhase(listingAddress)); } /** @@ -126,11 +116,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public readyToBeWhitelistedListings(fromBlock: number | "latest" = 0): Observable { return this.instance - .ApplicationStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.isReadyToWhitelist(listingAddress)); + .ApplicationStream({}, { fromBlock }) + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.isReadyToWhitelist(listingAddress)); } /** @@ -139,11 +129,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public currentChallengedCommitVotePhaseListings(fromBlock: number | "latest" = 0): Observable { return this.instance .ChallengeInitiatedStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.isInChallengedCommitVotePhase(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.isInChallengedCommitVotePhase(listingAddress)); } /** @@ -152,11 +142,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public currentChallengedRevealVotePhaseListings(fromBlock: number | "latest" = 0): Observable { return this.instance .ChallengeInitiatedStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.isInChallengedRevealVotePhase(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.isInChallengedRevealVotePhase(listingAddress)); } /** @@ -165,11 +155,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public listingsAwaitingAppealRequest(fromBlock: number | "latest" = 0): Observable { return this.instance .ChallengeFailedStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.isInRequestAppealPhase(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.isInRequestAppealPhase(listingAddress)); } /** @@ -178,11 +168,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public listingsAwaitingAppeal(fromBlock: number | "latest" = 0): Observable { return this.instance .ChallengeFailedStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.isInAppealPhase(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.isInAppealPhase(listingAddress)); } /** @@ -191,11 +181,11 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public listingsAwaitingUpdate(fromBlock: number | "latest" = 0): Observable { return this.instance .ApplicationStream({}, { fromBlock }) - .map((e) => e.args.listingAddress) - .concatFilter(async (listingAddress) => this.challengeCanBeResolved(listingAddress)); + .map(e => e.args.listingAddress) + .concatFilter(async listingAddress => this.challengeCanBeResolved(listingAddress)); } /** @@ -207,11 +197,9 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { - return this.instance - .ChallengeFailedStream({ listingAddress }, { fromBlock }) - .map((e) => e.args.challengeID); + return this.instance.ChallengeFailedStream({ listingAddress }, { fromBlock }).map(e => e.args.challengeID); } /** @@ -223,11 +211,9 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { - return this.instance - .ChallengeSucceededStream({ listingAddress }, { fromBlock }) - .map((e) => e.args.challengeID); + return this.instance.ChallengeSucceededStream({ listingAddress }, { fromBlock }).map(e => e.args.challengeID); } /** @@ -268,12 +254,12 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { let who = voter; if (!who) { @@ -290,7 +276,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { const appExpiry = await this.instance.getListingApplicationExpiry.callAsync(listingAddress); - return (appExpiry > new BigNumber(0)); + return appExpiry > new BigNumber(0); } /** @@ -333,8 +319,10 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper 0) { // request appeal phase initialized - if (appealPhaseExpiryTimestamp.toNumber() > 0) { // appeal phase initialized + if (requestAppealPhaseExpiryTimestamp.toNumber() > 0) { + // request appeal phase initialized + if (appealPhaseExpiryTimestamp.toNumber() > 0) { + // appeal phase initialized if (appealPhaseExpiry < now) { return true; // appeal phase over } else { @@ -387,10 +375,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async isInChallengedCommitVotePhase(listingAddress: EthAddress, pollID?: BigNumber): Promise { let isInCommitPhase = true; // if there is no challenge @@ -421,10 +406,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async isInChallengedRevealVotePhase(listingAddress: EthAddress, pollID?: BigNumber): Promise { let isInRevealPhase = true; // if there is no challenge @@ -458,7 +440,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { const appealExpiryDate = await this.getRequestAppealExpiryDate(listingAddress); const hasRequestedAppeal = await this.instance.getAppealRequested.callAsync(listingAddress); - return (!hasRequestedAppeal && appealExpiryDate > new Date()); + return !hasRequestedAppeal && appealExpiryDate > new Date(); } /** @@ -476,7 +458,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { const appealExpiryDate = await this.getAppealExpiryDate(listingAddress); - return (appealExpiryDate > new Date()); + return appealExpiryDate > new Date(); } /** @@ -650,10 +632,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async deposit(listingAddress: EthAddress, depositAmount: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.deposit.sendTransactionAsync(listingAddress, depositAmount), @@ -665,10 +644,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async withdraw(listingAddress: EthAddress, withdrawalAmount: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.withdraw.sendTransactionAsync(listingAddress, withdrawalAmount), @@ -680,10 +656,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.exitListing.sendTransactionAsync(listingAddress), - ); + return createTwoStepSimple(this.web3Wrapper, await this.instance.exitListing.sendTransactionAsync(listingAddress)); } /** @@ -691,10 +664,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async challenge(listingAddress: EthAddress, data: string = ""): Promise { const uri = await this.contentProvider.put(data); return this.challengeWithURI(listingAddress, uri); } @@ -705,10 +675,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async challengeWithURI(listingAddress: EthAddress, data: string = ""): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.challenge.sendTransactionAsync(listingAddress, data), @@ -719,13 +686,8 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.updateStatus.sendTransactionAsync(listingAddress), - ); + public async updateListing(listingAddress: EthAddress): Promise { + return createTwoStepSimple(this.web3Wrapper, await this.instance.updateStatus.sendTransactionAsync(listingAddress)); } /** @@ -733,10 +695,7 @@ export class OwnedAddressTCRWithAppeals extends BaseWrapper { + public async claimReward(challengeID: BigNumber, salt: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.claimReward.sendTransactionAsync(challengeID, salt), diff --git a/packages/core/src/contracts/parameterizer.ts b/packages/core/src/contracts/parameterizer.ts index 80cb4da45a..71144b5b68 100644 --- a/packages/core/src/contracts/parameterizer.ts +++ b/packages/core/src/contracts/parameterizer.ts @@ -34,10 +34,7 @@ export enum Parameters { * Users can propose new values for parameters, as well as challenge and then vote on those proposals */ export class Parameterizer extends BaseWrapper { - - public static singleton( - web3Wrapper: Web3Wrapper, - ): Parameterizer { + public static singleton(web3Wrapper: Web3Wrapper): Parameterizer { const instance = ParameterizerContract.singletonTrusted(web3Wrapper); if (!instance) { debug("Smart-contract wrapper for Parameterizer returned null, unsupported network"); @@ -70,7 +67,7 @@ export class Parameterizer extends BaseWrapper { } public async getPropState(propID: string): Promise { - if (!(await this.instance.propExists.callAsync(propID))) { + if (!await this.instance.propExists.callAsync(propID)) { return ParamProposalState.NOT_FOUND; } else if (await this.isPropInUnchallengedApplicationPhase(propID)) { return ParamProposalState.APPLYING; @@ -96,11 +93,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events. * @returns currently active proposals propIDs */ - public propIDsInApplicationPhase(fromBlock: number|"latest" = 0): Observable { + public propIDsInApplicationPhase(fromBlock: number | "latest" = 0): Observable { return this.instance .ReparameterizationProposalStream({}, { fromBlock }) - .map((e) => e.args.propID) - .concatFilter(async (propID) => this.isPropInUnchallengedApplicationPhase(propID)); + .map(e => e.args.propID) + .concatFilter(async propID => this.isPropInUnchallengedApplicationPhase(propID)); } /** @@ -108,17 +105,17 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events. * @returns currently active proposals ParamProps */ - public paramPropsInApplicationPhase(fromBlock: number|"latest" = 0): Observable { + public paramPropsInApplicationPhase(fromBlock: number | "latest" = 0): Observable { return this.instance .ReparameterizationProposalStream({}, { fromBlock }) - .map((e) => { + .map(e => { return { propID: e.args.propID, paramName: e.args.name, proposedValue: e.args.value, }; }) - .concatFilter(async (args) => this.isPropInUnchallengedApplicationPhase(args.propID)); + .concatFilter(async args => this.isPropInUnchallengedApplicationPhase(args.propID)); } /** @@ -127,11 +124,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events. * @returns currently active proposals in Challenge Commit Phase propIDs */ - public propIDsInChallengeCommitPhase(fromBlock: number|"latest" = 0): Observable { + public propIDsInChallengeCommitPhase(fromBlock: number | "latest" = 0): Observable { return this.instance .NewChallengeStream({}, { fromBlock }) - .map((e) => e.args.propID) - .concatFilter(async (propID) => this.isPropInChallengeCommitPhase(propID)); + .map(e => e.args.propID) + .concatFilter(async propID => this.isPropInChallengeCommitPhase(propID)); } /** @@ -140,11 +137,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events. * @returns ParamProps for proposals currently in Challenge Commit Phase */ - public paramPropsInChallengeCommitPhase(fromBlock: number|"latest" = 0): Observable { + public paramPropsInChallengeCommitPhase(fromBlock: number | "latest" = 0): Observable { return this.instance .NewChallengeStream({}, { fromBlock }) - .concatFilter(async (e) => this.isPropInChallengeCommitPhase(e.args.propID)) - .map((e) => { + .concatFilter(async e => this.isPropInChallengeCommitPhase(e.args.propID)) + .map(e => { return { propID: e.args.propID, paramName: e.args.name, @@ -159,11 +156,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events * @returns currently active proposals in Challenge Reveal Phase propIDs */ - public propIDsInChallengeRevealPhase(fromBlock: number|"latest" = 0): Observable { + public propIDsInChallengeRevealPhase(fromBlock: number | "latest" = 0): Observable { return this.instance .NewChallengeStream({}, { fromBlock }) - .map((e) => e.args.propID) - .concatFilter(async (propID) => this.isPropInChallengeRevealPhase(propID)); + .map(e => e.args.propID) + .concatFilter(async propID => this.isPropInChallengeRevealPhase(propID)); } /** @@ -172,11 +169,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events. * @returns ParamProps for proposals currently in Challenge Reveal Phase */ - public paramPropsInChallengeRevealPhase(fromBlock: number|"latest" = 0): Observable { + public paramPropsInChallengeRevealPhase(fromBlock: number | "latest" = 0): Observable { return this.instance .NewChallengeStream({}, { fromBlock }) - .concatFilter(async (e) => this.isPropInChallengeRevealPhase(e.args.propID)) - .map((e) => { + .concatFilter(async e => this.isPropInChallengeRevealPhase(e.args.propID)) + .map(e => { return { propID: e.args.propID, paramName: e.args.name, @@ -192,16 +189,16 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events * @returns propIDs for proposals that can be updated */ - public propIDsToProcess(fromBlock: number|"latest" = 0): Observable { + public propIDsToProcess(fromBlock: number | "latest" = 0): Observable { const applicationsToProcess = this.instance .ReparameterizationProposalStream({}, { fromBlock }) - .map((e) => e.args.propID) - .concatFilter(async (propID) => this.isPropInUnchallengedApplicationUpdatePhase(propID)); + .map(e => e.args.propID) + .concatFilter(async propID => this.isPropInUnchallengedApplicationUpdatePhase(propID)); const challengesToResolve = this.instance .NewChallengeStream({}, { fromBlock }) - .map((e) => e.args.propID) - .concatFilter(async (propID) => this.isPropInChallengeResolvePhase(propID)); + .map(e => e.args.propID) + .concatFilter(async propID => this.isPropInChallengeResolvePhase(propID)); return Observable.merge(applicationsToProcess, challengesToResolve).distinct(); } @@ -213,13 +210,13 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events * @returns ParamProps for proposals that can be updated */ - public paramPropsToProcess(fromBlock: number|"latest" = 0): Observable { + public paramPropsToProcess(fromBlock: number | "latest" = 0): Observable { const challengesToResolve = this.instance .NewChallengeStream({}, { fromBlock }) - .concatFilter(async (e) => { + .concatFilter(async e => { return this.isPropInChallengeResolvePhase(e.args.propID); }) - .map((e) => { + .map(e => { return { propID: e.args.propID, paramName: e.args.name, @@ -230,10 +227,10 @@ export class Parameterizer extends BaseWrapper { const applicationsToProcess = this.instance .ReparameterizationProposalStream({}, { fromBlock }) - .concatFilter(async (e) => { + .concatFilter(async e => { return this.isPropInUnchallengedApplicationUpdatePhase(e.args.propID); }) - .map((e) => { + .map(e => { return { propID: e.args.propID, paramName: e.args.name, @@ -251,11 +248,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events * @returns pollIDs for proposals that have been challenged and resolved */ - public pollIDsForResolvedChallenges(propID: string, fromBlock: number|"latest" = 0): Observable { + public pollIDsForResolvedChallenges(propID: string, fromBlock: number | "latest" = 0): Observable { return this.instance .NewChallengeStream({ propID }, { fromBlock }) - .concatFilter(async (e) => this.isChallengeResolved(e.args.pollID)) - .map((e) => e.args.pollID); + .concatFilter(async e => this.isChallengeResolved(e.args.pollID)) + .map(e => e.args.pollID); } /** @@ -264,11 +261,11 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events * @returns propIDs for proposals that have been challenged and resolved */ - public propIDsForResolvedChallenges(fromBlock: number|"latest" = 0): Observable { + public propIDsForResolvedChallenges(fromBlock: number | "latest" = 0): Observable { return this.instance .NewChallengeStream({}, { fromBlock }) - .concatFilter(async (e) => this.isChallengeResolved(e.args.pollID)) - .map((e) => e.args.propID); + .concatFilter(async e => this.isChallengeResolved(e.args.pollID)) + .map(e => e.args.propID); } /** @@ -277,18 +274,18 @@ export class Parameterizer extends BaseWrapper { * @param fromBlock Starting block in history for events. Set to "latest" for only new events * @returns ParamProps for proposals that have been challenged and resolved */ - public paramPropsForResolvedChallenged(fromBlock: number|"latest" = 0): Observable { + public paramPropsForResolvedChallenged(fromBlock: number | "latest" = 0): Observable { return this.instance - .NewChallengeStream({}, { fromBlock }) - .concatFilter(async (e) => this.isChallengeResolved(e.args.pollID)) - .map((e) => { - return { - propID: e.args.propID, - paramName: e.args.name, - proposedValue: e.args.value, - pollID: e.args.pollID, - }; - }); + .NewChallengeStream({}, { fromBlock }) + .concatFilter(async e => this.isChallengeResolved(e.args.pollID)) + .map(e => { + return { + propID: e.args.propID, + paramName: e.args.name, + proposedValue: e.args.value, + pollID: e.args.pollID, + }; + }); } /** @@ -301,7 +298,7 @@ export class Parameterizer extends BaseWrapper { * @param newValue value you want parameter to be changed to */ public async proposeReparameterization( - paramName: Parameters|string, + paramName: Parameters | string, newValue: BigNumber, ): Promise { return createTwoStepSimple( @@ -314,9 +311,7 @@ export class Parameterizer extends BaseWrapper { * Challenge a "reparameterization" * @param propID the ID of the proposed reparameterization you wish to challenge */ - public async challengeReparameterization( - propID: Bytes32, - ): Promise { + public async challengeReparameterization(propID: Bytes32): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.challengeReparameterization.sendTransactionAsync(propID), @@ -328,13 +323,8 @@ export class Parameterizer extends BaseWrapper { * challenge or wins challenge. Deletes it if it loses. Distributes tokens correctly. * @param propID the ID of the proposed reparameterization to process */ - public async processProposal( - propID: Bytes32, - ): Promise { - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.processProposal.sendTransactionAsync(propID), - ); + public async processProposal(propID: Bytes32): Promise { + return createTwoStepSimple(this.web3Wrapper, await this.instance.processProposal.sendTransactionAsync(propID)); } /** @@ -342,10 +332,7 @@ export class Parameterizer extends BaseWrapper { * @param challengeID ID of challenge to claim reward of * @param salt Salt for user's vote on specified challenge */ - public async claimReward( - challengeID: BigNumber, - salt: BigNumber, - ): Promise { + public async claimReward(challengeID: BigNumber, salt: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.claimReward.sendTransactionAsync(challengeID, salt), @@ -356,12 +343,12 @@ export class Parameterizer extends BaseWrapper { * Contract Getters */ - /** - * Gets reward for voter - * @param challengeID ID of challenge to check - * @param salt Salt of vote associated with voter for specified challenge - * @param voter Voter of which to check reward - */ + /** + * Gets reward for voter + * @param challengeID ID of challenge to check + * @param salt Salt of vote associated with voter for specified challenge + * @param voter Voter of which to check reward + */ public async voterReward(challengeID: BigNumber, salt: BigNumber, voter?: EthAddress): Promise { let who = voter; if (!who) { @@ -391,11 +378,11 @@ export class Parameterizer extends BaseWrapper { * @param propID ID of prop to check */ public async isPropInUnchallengedApplicationPhase(propID: string): Promise { - if (! await this.instance.propExists.callAsync(propID)) { + if (!await this.instance.propExists.callAsync(propID)) { return false; } const pollID = await this.instance.getPropChallengeID.callAsync(propID); - if (! pollID.isZero()) { + if (!pollID.isZero()) { return false; } @@ -415,11 +402,11 @@ export class Parameterizer extends BaseWrapper { * @param propID ID of prop to check */ public async isPropInUnchallengedApplicationUpdatePhase(propID: string): Promise { - if (! await this.instance.propExists.callAsync(propID)) { + if (!await this.instance.propExists.callAsync(propID)) { return false; } const pollID = await this.instance.getPropChallengeID.callAsync(propID); - if (! pollID.isZero()) { + if (!pollID.isZero()) { return false; } const applicationExpiry = await this.instance.getPropAppExpiry.callAsync(propID); @@ -437,7 +424,7 @@ export class Parameterizer extends BaseWrapper { * @param propID ID of prop to check */ public async isPropInChallengeCommitPhase(propID: string): Promise { - if (! await this.instance.propExists.callAsync(propID)) { + if (!await this.instance.propExists.callAsync(propID)) { return false; } const pollID = await this.instance.getPropChallengeID.callAsync(propID); @@ -454,7 +441,7 @@ export class Parameterizer extends BaseWrapper { * @param propID ID of prop to check */ public async isPropInChallengeRevealPhase(propID: string): Promise { - if (! await this.instance.propExists.callAsync(propID)) { + if (!await this.instance.propExists.callAsync(propID)) { return false; } const pollID = await this.instance.getPropChallengeID.callAsync(propID); @@ -471,7 +458,7 @@ export class Parameterizer extends BaseWrapper { * @param propID ID of prop to check */ public async isPropInChallengeResolvePhase(propID: string): Promise { - if (! await this.instance.propExists.callAsync(propID)) { + if (!await this.instance.propExists.callAsync(propID)) { return false; } const pollID = await this.instance.getPropChallengeID.callAsync(propID); diff --git a/packages/core/src/contracts/voting.ts b/packages/core/src/contracts/voting.ts index 155794b485..6ae6ab40ac 100644 --- a/packages/core/src/contracts/voting.ts +++ b/packages/core/src/contracts/voting.ts @@ -17,10 +17,7 @@ const debug = Debug("civil:tcr"); * Parameterizer or the Registry */ export class Voting extends BaseWrapper { - - public static singleton( - web3Wrapper: Web3Wrapper, - ): Voting { + public static singleton(web3Wrapper: Web3Wrapper): Voting { const instance = PLCRVotingContract.singletonTrusted(web3Wrapper); if (!instance) { debug("Smart-contract wrapper for Voting returned null, unsupported network"); @@ -48,11 +45,11 @@ export class Voting extends BaseWrapper { * Set to "latest" for only new events * @returns currently active polls (by id) */ - public activePolls(fromBlock: number|"latest" = 0): Observable { + public activePolls(fromBlock: number | "latest" = 0): Observable { return this.instance .PollCreatedStream({}, { fromBlock }) - .map((e) => e.args.pollID) - .concatFilter(async (pollID) => this.instance.pollExists.callAsync(pollID)); + .map(e => e.args.pollID) + .concatFilter(async pollID => this.instance.pollExists.callAsync(pollID)); } /** @@ -63,9 +60,7 @@ export class Voting extends BaseWrapper { * Transfer tokens to voting contract (thus getting voting rights) * @param numTokens number of tokens to transfer into voting contract */ - public async requestVotingRights( - numTokens: BigNumber, - ): Promise { + public async requestVotingRights(numTokens: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.requestVotingRights.sendTransactionAsync(numTokens), @@ -76,9 +71,7 @@ export class Voting extends BaseWrapper { * Withdraw tokens from voting contract (thus withdrawing voting rights) * @param numTokens number of tokens to withdraw from voting contract */ - public async withdrawVotingRights( - numTokens: BigNumber, - ): Promise { + public async withdrawVotingRights(numTokens: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.withdrawVotingRights.sendTransactionAsync(numTokens), @@ -89,13 +82,8 @@ export class Voting extends BaseWrapper { * Unlocks tokens from unrevealed vote where poll has ended * @param pollID ID of poll to unlock unrevealed vote of */ - public async rescueTokens( - pollID: BigNumber, - ): Promise { - return createTwoStepSimple( - this.web3Wrapper, - await this.instance.rescueTokens.sendTransactionAsync(pollID), - ); + public async rescueTokens(pollID: BigNumber): Promise { + return createTwoStepSimple(this.web3Wrapper, await this.instance.rescueTokens.sendTransactionAsync(pollID)); } /** @@ -124,11 +112,7 @@ export class Voting extends BaseWrapper { * @param voteOption Vote choice used to generate commitHash for poll * @param salt Secret number used to generate commitHash for poll */ - public async revealVote( - pollID: BigNumber, - voteOption: BigNumber, - salt: BigNumber, - ): Promise { + public async revealVote(pollID: BigNumber, voteOption: BigNumber, salt: BigNumber): Promise { return createTwoStepSimple( this.web3Wrapper, await this.instance.revealVote.sendTransactionAsync(pollID, voteOption, salt), @@ -139,12 +123,12 @@ export class Voting extends BaseWrapper { * Contract Getters */ - /** - * Gets number of tokens held as voting rights by the Voting contract - * Voting contract may hold more tokens than can be withdrawn if some tokens - * are currently locked in a vote - * @param tokenOwner Address of token owner to check voting rights of - */ + /** + * Gets number of tokens held as voting rights by the Voting contract + * Voting contract may hold more tokens than can be withdrawn if some tokens + * are currently locked in a vote + * @param tokenOwner Address of token owner to check voting rights of + */ public async getNumVotingRights(tokenOwner?: EthAddress): Promise { let who = tokenOwner; if (!who) { @@ -158,10 +142,7 @@ export class Voting extends BaseWrapper { * @param voterAddress voter to check vote status of * @param pollID ID of poll to check */ - public async hasVoteBeenRevealed( - pollID: BigNumber, - voter?: EthAddress, - ): Promise { + public async hasVoteBeenRevealed(pollID: BigNumber, voter?: EthAddress): Promise { let who = voter; if (!who) { who = requireAccount(this.web3Wrapper); @@ -173,9 +154,7 @@ export class Voting extends BaseWrapper { * Is this poll in reveal period? * @param pollID ID of poll to check */ - public async isRevealPeriodActive( - pollID: BigNumber, - ): Promise { + public async isRevealPeriodActive(pollID: BigNumber): Promise { return this.instance.revealPeriodActive.callAsync(pollID); } @@ -183,9 +162,7 @@ export class Voting extends BaseWrapper { * Is this poll in commit period? * @param pollID ID of poll to check */ - public async isCommitPeriodActive( - pollID: BigNumber, - ): Promise { + public async isCommitPeriodActive(pollID: BigNumber): Promise { return this.instance.commitPeriodActive.callAsync(pollID); } @@ -193,9 +170,7 @@ export class Voting extends BaseWrapper { * Has this poll ended? * @param pollID ID of poll to check */ - public async hasPollEnded( - pollID: BigNumber, - ): Promise { + public async hasPollEnded(pollID: BigNumber): Promise { return this.instance.pollEnded.callAsync(pollID); } @@ -203,9 +178,7 @@ export class Voting extends BaseWrapper { * Gets total number of tokens from winning side of poll * @param pollID ID of poll to check */ - public async getTotalTokensForWinners( - pollID: BigNumber, - ): Promise { + public async getTotalTokensForWinners(pollID: BigNumber): Promise { return this.instance.getTotalNumberOfTokensForWinningOption.callAsync(pollID); } @@ -233,9 +206,7 @@ export class Voting extends BaseWrapper { * Did this poll pass? * @param pollID ID of poll to check */ - public async isPollPassed( - pollID: BigNumber, - ): Promise { + public async isPollPassed(pollID: BigNumber): Promise { return this.instance.isPassed.callAsync(pollID); } @@ -243,9 +214,7 @@ export class Voting extends BaseWrapper { * Gets expiry timestamp of commit period. * @param pollID ID of poll to check */ - public async getCommitPeriodExpiry( - pollID: BigNumber, - ): Promise { + public async getCommitPeriodExpiry(pollID: BigNumber): Promise { return this.instance.getPollCommitEndDate.callAsync(pollID); } @@ -253,9 +222,7 @@ export class Voting extends BaseWrapper { * Gets expiry timestamp of reveal period. * @param pollID ID of poll to check */ - public async getRevealPeriodExpiry( - pollID: BigNumber, - ): Promise { + public async getRevealPeriodExpiry(pollID: BigNumber): Promise { return this.instance.getPollRevealEndDate.callAsync(pollID); } @@ -265,15 +232,11 @@ export class Voting extends BaseWrapper { * @param tokens number of tokens being committed this vote * @param account account to check pollID for */ - public async getPrevPollID( - tokens: BigNumber, - account?: EthAddress, - ): Promise { + public async getPrevPollID(tokens: BigNumber, account?: EthAddress): Promise { let who = account; if (!who) { who = requireAccount(this.web3Wrapper); } return this.instance.getInsertPointForNumTokens.callAsync(who, tokens); } - } diff --git a/packages/core/src/globals.d.ts b/packages/core/src/globals.d.ts index 668a68e2b3..751137d7b2 100644 --- a/packages/core/src/globals.d.ts +++ b/packages/core/src/globals.d.ts @@ -5,7 +5,7 @@ declare module "*.json" { export default json; } -declare module 'web3/lib/solidity/coder' { +declare module "web3/lib/solidity/coder" { const decodeParams: (types: string[], data: string) => any[]; } diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 7c35a04dd6..330858967a 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -29,13 +29,11 @@ export type EventFunction = ( callback?: FilterCallback, ) => Web3.FilterResult; -export type TypedEventFilter = { - [P in keyof T]?: T[P]|Array; -}; +export type TypedEventFilter = { [P in keyof T]?: T[P] | Array }; export interface TxDataBase { - gas?: number|string|BigNumber; - gasPrice?: number|string|BigNumber; + gas?: number | string | BigNumber; + gasPrice?: number | string | BigNumber; nonce?: number; data?: string; } @@ -45,7 +43,7 @@ export interface TxData extends TxDataBase { } export interface TxDataPayable extends TxData { - value: number|string|BigNumber; + value: number | string | BigNumber; } export interface TxDataAll extends Partial { @@ -54,7 +52,7 @@ export interface TxDataAll extends Partial { export interface TransactionObject extends TxDataBase { from: EthAddress; - value?: number|string|BigNumber; + value?: number | string | BigNumber; to?: EthAddress; data?: string; } @@ -89,10 +87,10 @@ export interface DecodedTransactionReceipt { transactionIndex: number; from: string; to: string; - status: null|string|0|1; + status: null | string | 0 | 1; cumulativeGasUsed: number; gasUsed: number; - contractAddress: string|null; + contractAddress: string | null; logs: Array | Web3.LogEntry>; } diff --git a/packages/core/src/utils/abidecoder.ts b/packages/core/src/utils/abidecoder.ts index 820a2921f0..bf3248b615 100644 --- a/packages/core/src/utils/abidecoder.ts +++ b/packages/core/src/utils/abidecoder.ts @@ -1,4 +1,3 @@ - /* * This file is used from the 0xproject and it's on Apache 2.0 License * https://github.com/0xProject/0x.js/blob/development/packages/0x.js/src/utils/abi_decoder.ts @@ -50,8 +49,8 @@ export class AbiDecoder { let dataIndex = 0; let topicsIndex = 1; - const nonIndexedInputs = event.inputs.filter((input) => !input.indexed); - const dataTypes = nonIndexedInputs.map((input) => input.type); + const nonIndexedInputs = event.inputs.filter(input => !input.indexed); + const dataTypes = nonIndexedInputs.map(input => input.type); const decodedData = SolidityCoder.decodeParams(dataTypes, logData.slice("0x".length)); event.inputs.forEach((param: Web3.EventParameter) => { @@ -78,7 +77,7 @@ export class AbiDecoder { private addABI(abiArray: Web3.AbiDefinition[]): void { abiArray.forEach((abi: Web3.AbiDefinition) => { if (abi.type === AbiType.Event) { - const abiTypes = abi.inputs.map((input) => input.type); + const abiTypes = abi.inputs.map(input => input.type); const signature = `${abi.name}(${abiTypes.join(",")})`; const signatureHash = new Web3().sha3(signature); this.methodIds[signatureHash] = abi; diff --git a/packages/core/src/utils/contractutils.ts b/packages/core/src/utils/contractutils.ts index 569853957f..36072098e6 100644 --- a/packages/core/src/utils/contractutils.ts +++ b/packages/core/src/utils/contractutils.ts @@ -25,14 +25,15 @@ export function isContract(what: any): what is } export function isDecodedLog(what: Web3.LogEntry | Web3.DecodedLogEntry): what is Web3.DecodedLogEntry { - return (typeof (what as any).event === "string") && !isUndefined((what as any).args); + return typeof (what as any).event === "string" && !isUndefined((what as any).args); } // TODO(ritave): Think how to solve race condition in filters, concat get/watch perhaps? -export function streamifyEvent(original: EventFunction>) -: (paramFilters?: TypedEventFilter, filterObject?: Web3.FilterObject) => Observable> { +export function streamifyEvent( + original: EventFunction>, +): (paramFilters?: TypedEventFilter, filterObject?: Web3.FilterObject) => Observable> { return (paramFilters?: TypedEventFilter, filterObject?: Web3.FilterObject) => { - return new Observable>((subscriber) => { + return new Observable>(subscriber => { const filter = original(paramFilters, filterObject); let errored = false; filter.watch((err, event) => { @@ -55,32 +56,29 @@ export function streamifyEvent(original: EventFunction>) } export function isTxData(data: any): data is TxDataBase { - return data.gas !== undefined || + return ( + data.gas !== undefined || data.gasPrice !== undefined || data.nonce !== undefined || data.from !== undefined || data.value !== undefined || - data.to !== undefined; + data.to !== undefined + ); } export function createTwoStepTransaction( web3Wrapper: Web3Wrapper, txHash: TxHash, - transform: (receipt: CivilTransactionReceipt) => Promise|T, + transform: (receipt: CivilTransactionReceipt) => Promise | T, ): TwoStepEthTransaction { return { txHash, awaitReceipt: async (blockConfirmations?: number) => - web3Wrapper - .awaitReceipt(txHash, blockConfirmations) - .then(transform), + web3Wrapper.awaitReceipt(txHash, blockConfirmations).then(transform), }; } -export function createTwoStepSimple( - web3Wrapper: Web3Wrapper, - txHash: TxHash, -): TwoStepEthTransaction { +export function createTwoStepSimple(web3Wrapper: Web3Wrapper, txHash: TxHash): TwoStepEthTransaction { return { txHash, awaitReceipt: web3Wrapper.awaitReceipt.bind(web3Wrapper, txHash), diff --git a/packages/core/src/utils/nodestream.ts b/packages/core/src/utils/nodestream.ts index 0ad13a9475..3382f40bfe 100644 --- a/packages/core/src/utils/nodestream.ts +++ b/packages/core/src/utils/nodestream.ts @@ -30,7 +30,7 @@ export class NodeStream { public async awaitConfirmations(blockHash: string, noOfConfirmations: number) { throw new Error("Not implemented yet"); } -/* + /* private async getLatestBlock(): Promise { } diff --git a/packages/core/src/utils/web3wrapper.ts b/packages/core/src/utils/web3wrapper.ts index 9768a1f0e2..4c65647ead 100644 --- a/packages/core/src/utils/web3wrapper.ts +++ b/packages/core/src/utils/web3wrapper.ts @@ -40,10 +40,7 @@ export class Web3Wrapper { // TODO(ritave): Constructor can throw when the eg. HttpProvider can't connect to Http // It shouldn't, and should just set null account this.currentProvider = provider; - this.abiDecoder = new AbiDecoder( - Object - .values(artifacts) - .map((a) => a.abi)); + this.abiDecoder = new AbiDecoder(Object.values(artifacts).map(a => a.abi)); this.nodeStream = new NodeStream(); } @@ -89,7 +86,8 @@ export class Web3Wrapper { return reject((result as any).error); } return resolve(result); - }); + }, + ); }); } @@ -135,12 +133,14 @@ export class Web3Wrapper { * @param txHash Transaction hash for which the receipt is returned * @returns Null if the transaction is not yet inside the blockchain (still in mempool), decoded transaction otherwise */ - public async getReceipt(txHash: TxHash): Promise { + public async getReceipt(txHash: TxHash): Promise { // web3-typescript-typings have wrong type, the call can return null if still in mempool // Fix: https://github.com/0xProject/0x.js/pull/338 // tslint:disable:no-unbound-method - const getTransactionReceipt = - promisify(this.web3.eth.getTransactionReceipt, this.web3.eth); + const getTransactionReceipt = promisify( + this.web3.eth.getTransactionReceipt, + this.web3.eth, + ); // tslint:enable:no-unbound-method const receipt = await getTransactionReceipt(txHash); @@ -151,7 +151,7 @@ export class Web3Wrapper { } private receiptToCivilReceipt(receipt: Web3.TransactionReceipt): CivilTransactionReceipt { - receipt.logs = receipt.logs.map((log) => this.abiDecoder.tryToDecodeLogOrNoop(log)); + receipt.logs = receipt.logs.map(log => this.abiDecoder.tryToDecodeLogOrNoop(log)); return receipt as CivilTransactionReceipt; } diff --git a/packages/core/tslint.json b/packages/core/tslint.json index 35b31bc273..a06c77287f 100644 --- a/packages/core/tslint.json +++ b/packages/core/tslint.json @@ -1,7 +1,5 @@ { - "extends": [ - "@joincivil/tslint-rules" - ], + "extends": ["@joincivil/tslint-rules"], "linterOptions": { "exclude": [ "src/contracts/generated/parameterizer.ts", diff --git a/packages/dapp/README.md b/packages/dapp/README.md index 302e35cb07..3d29dc4fe3 100644 --- a/packages/dapp/README.md +++ b/packages/dapp/README.md @@ -5,9 +5,11 @@ This project was bootstrapped with [Create React App](https://github.com/faceboo This package contains a React + Typescript app that functions as a DApp for the Civil platform. It is intended to have a nice UX for users to interact with the TCR and Newsrooms. ## To Build for Production + Run `yarn build` ## To Run Development Server + Run `yarn start` Enjoy your server responsibly on localhost:3000 diff --git a/packages/dapp/src/components/Listings.tsx b/packages/dapp/src/components/Listings.tsx index e3241eac24..0b95a88a14 100644 --- a/packages/dapp/src/components/Listings.tsx +++ b/packages/dapp/src/components/Listings.tsx @@ -13,11 +13,10 @@ const StyledDiv = styled.div` export interface ListingsState { applications: List; applicationSubscription: Subscription; - error: undefined|string; + error: undefined | string; } class Listings extends React.Component<{}, ListingsState> { - constructor(props: any) { super(props); this.state = { @@ -40,7 +39,7 @@ class Listings extends React.Component<{}, ListingsState> { return ( whaddup listings: {this.state.applications.toString()} -
+
{this.state.error}
); @@ -53,16 +52,18 @@ class Listings extends React.Component<{}, ListingsState> { tcr = civil.tcrSingletonTrusted(); } catch (ex) { console.log("failed to get tcr."); - this.setState({error: "No Supported Network Found. Please set MetaMask network to Rinkeby and Unlock Account."}); + this.setState({ + error: "No Supported Network Found. Please set MetaMask network to Rinkeby and Unlock Account.", + }); } if (tcr) { - const subscription = tcr.listingsInApplicationStage().subscribe((listing) => { - this.setState({applications: this.state.applications.push(listing)}); + const subscription = tcr.listingsInApplicationStage().subscribe(listing => { + this.setState({ applications: this.state.applications.push(listing) }); }); - this.setState({applicationSubscription : subscription}); + this.setState({ applicationSubscription: subscription }); } - } + }; } export default Listings; diff --git a/packages/dapp/src/components/Main.tsx b/packages/dapp/src/components/Main.tsx index 05c0ee16de..3de528bddc 100644 --- a/packages/dapp/src/components/Main.tsx +++ b/packages/dapp/src/components/Main.tsx @@ -7,8 +7,8 @@ class Main extends React.Component { public render(): JSX.Element { return ( - - + + ); } diff --git a/packages/dapp/src/components/Newsroom.tsx b/packages/dapp/src/components/Newsroom.tsx index 5a0ae3caa0..06e9e71f42 100644 --- a/packages/dapp/src/components/Newsroom.tsx +++ b/packages/dapp/src/components/Newsroom.tsx @@ -9,11 +9,7 @@ export interface NewsroomProps { class Newsroom extends React.Component { public render(): JSX.Element { - return ( -
- Newsroom: {this.props.match.params.newsroomAddress} -
- ); + return
Newsroom: {this.props.match.params.newsroomAddress}
; } } diff --git a/packages/dapp/src/components/navbar/NavBar.tsx b/packages/dapp/src/components/navbar/NavBar.tsx index eb2ecb8e25..4e65febe6c 100644 --- a/packages/dapp/src/components/navbar/NavBar.tsx +++ b/packages/dapp/src/components/navbar/NavBar.tsx @@ -21,7 +21,6 @@ export interface NavBarState { } class NavBar extends React.Component<{}, NavBarState> { - constructor(props: {}) { super(props); @@ -40,49 +39,43 @@ class NavBar extends React.Component<{}, NavBarState> { public render(): JSX.Element { return ( - - - - C I V I L - - - - - Registry - - - - - Constitution - - - - - About - - - - - {"Your Balance: " + this.state.balance} - - - + + + + C I V I L + + + + Registry + + + Constitution + + + About + + + {"Your Balance: " + this.state.balance} + + ); } private initNavBar = () => { const civil = new Civil(); const token = civil.getEIP20ForDeployedTCR(); - token.then(async (t) => { - return t.getBalance(civil.userAccount).then((balance) => { - this.setState({balance: balance.toString()}); + token + .then(async t => { + return t.getBalance(civil.userAccount).then(balance => { + this.setState({ balance: balance.toString() }); + }); + }) + .catch(ex => { + if (ex === CivilErrors.NoUnlockedAccount) { + this.setState({ balance: "No Unlocked Account Found. Unlock MetaMask and Reload." }); + } }); - }).catch((ex) => { - if (ex === CivilErrors.NoUnlockedAccount) { - this.setState({balance: "No Unlocked Account Found. Unlock MetaMask and Reload."}); - } - }); - } + }; } export default NavBar; diff --git a/packages/dapp/src/components/navbar/NavBarItem.tsx b/packages/dapp/src/components/navbar/NavBarItem.tsx index 886fbc0537..560c889b0f 100644 --- a/packages/dapp/src/components/navbar/NavBarItem.tsx +++ b/packages/dapp/src/components/navbar/NavBarItem.tsx @@ -5,7 +5,7 @@ export interface StyledLIProps { } const StyledLI = styled("li")` - ${(props: StyledLIProps): string => props.right ? "margin-left: auto" : ""}; + ${(props: StyledLIProps): string => (props.right ? "margin-left: auto" : "")}; `; export interface NavBarItemProps { @@ -13,18 +13,12 @@ export interface NavBarItemProps { } class NavBarItem extends React.Component { - constructor(props: NavBarItemProps) { super(props); } public render(): JSX.Element { - - return ( - - {this.props.children} - - ); + return {this.props.children}; } } diff --git a/packages/dapp/src/components/navbar/NavBarLink.tsx b/packages/dapp/src/components/navbar/NavBarLink.tsx index afea80e426..0a8d7aa676 100644 --- a/packages/dapp/src/components/navbar/NavBarLink.tsx +++ b/packages/dapp/src/components/navbar/NavBarLink.tsx @@ -8,18 +8,15 @@ export interface NavBarLinkProps { } class NavBarLink extends React.Component { - constructor(props: NavBarLinkProps) { super(props); } public render(): JSX.Element { return ( - - - {this.props.children} - - + + {this.props.children} + ); } } diff --git a/packages/dapp/src/components/navbar/NavBarSpan.tsx b/packages/dapp/src/components/navbar/NavBarSpan.tsx index 826984af5a..f5da893a0f 100644 --- a/packages/dapp/src/components/navbar/NavBarSpan.tsx +++ b/packages/dapp/src/components/navbar/NavBarSpan.tsx @@ -9,9 +9,9 @@ const StyledSpan = styled("span")` padding-right: 18px; padding-left: 18px; color: white; - font-family: 'Libre Franklin', sans-serif; + font-family: "Libre Franklin", sans-serif; font-weight: 600; - font-size: ${(props: StyledSpanProps): string => props.big ? "20pt" : "12pt"}; + font-size: ${(props: StyledSpanProps): string => (props.big ? "20pt" : "12pt")}; `; export interface NavBarSpanProps { @@ -19,17 +19,12 @@ export interface NavBarSpanProps { } class NavBarSpan extends React.Component { - constructor(props: NavBarSpanProps) { super(props); } public render(): JSX.Element { - return ( - - {this.props.children} - - ); + return {this.props.children}; } } diff --git a/packages/dapp/src/index.tsx b/packages/dapp/src/index.tsx index 8967d494d8..9b0e246031 100644 --- a/packages/dapp/src/index.tsx +++ b/packages/dapp/src/index.tsx @@ -3,8 +3,5 @@ import * as ReactDOM from "react-dom"; import App from "./App"; import registerServiceWorker from "./registerServiceWorker"; -ReactDOM.render( - (), - document.getElementById("root") as HTMLElement, -); +ReactDOM.render(, document.getElementById("root") as HTMLElement); registerServiceWorker(); diff --git a/packages/dapp/src/registerServiceWorker.ts b/packages/dapp/src/registerServiceWorker.ts index 63b41064be..1aab8ce4e0 100644 --- a/packages/dapp/src/registerServiceWorker.ts +++ b/packages/dapp/src/registerServiceWorker.ts @@ -14,18 +14,13 @@ const isLocalhost = Boolean( // [::1] is the IPv6 localhost address. window.location.hostname === "[::1]" || // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/, - ), + window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/), ); export default function register(): void { if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) { // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL( - process.env.PUBLIC_URL!, - window.location.toString(), - ); + const publicUrl = new URL(process.env.PUBLIC_URL!, window.location.toString()); if (publicUrl.origin !== window.location.origin) { // Our service worker won"t work if PUBLIC_URL is on a different origin // from what our page is served on. This might happen if a CDN is used to @@ -50,7 +45,7 @@ export default function register(): void { function registerValidSW(swUrl: string): void { navigator.serviceWorker .register(swUrl) - .then((registration) => { + .then(registration => { registration.onupdatefound = () => { const installingWorker = registration.installing; if (installingWorker) { @@ -73,7 +68,7 @@ function registerValidSW(swUrl: string): void { } }; }) - .catch((error) => { + .catch(error => { console.error("Error during service worker registration:", error); }); } @@ -81,34 +76,36 @@ function registerValidSW(swUrl: string): void { function checkValidServiceWorker(swUrl: string): void { // Check if the service worker can be found. If it can"t reload the page. fetch(swUrl) - .then((response) => { + .then(response => { // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get("content-type")!.indexOf("javascript") === -1 - ) { + if (response.status === 404 || response.headers.get("content-type")!.indexOf("javascript") === -1) { // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then((registration) => { - registration.unregister().then(() => { - window.location.reload(); - }).catch(); - }).catch(); + navigator.serviceWorker.ready + .then(registration => { + registration + .unregister() + .then(() => { + window.location.reload(); + }) + .catch(); + }) + .catch(); } else { // Service worker found. Proceed as normal. registerValidSW(swUrl); } }) .catch(() => { - console.log( - "No internet connection found. App is running in offline mode.", - ); + console.log("No internet connection found. App is running in offline mode."); }); } export function unregister(): void { if ("serviceWorker" in navigator) { - navigator.serviceWorker.ready.then((registration) => { - registration.unregister().catch(); - }).catch(); + navigator.serviceWorker.ready + .then(registration => { + registration.unregister().catch(); + }) + .catch(); } } diff --git a/packages/dapp/tsconfig.json b/packages/dapp/tsconfig.json index efbc0a5ad8..7942d8e527 100644 --- a/packages/dapp/tsconfig.json +++ b/packages/dapp/tsconfig.json @@ -10,18 +10,7 @@ "noImplicitReturns": true, "suppressImplicitAnyIndexErrors": true }, - "exclude": [ - "node_modules", - "build", - "scripts", - "acceptance-tests", - "webpack", - "jest", - "src/setupTests.ts" - ], - "include": [ - "./**/*.ts", - "./**/*.tsx" - ], - "types": [ "react", "jest" ] + "exclude": ["node_modules", "build", "scripts", "acceptance-tests", "webpack", "jest", "src/setupTests.ts"], + "include": ["./**/*.ts", "./**/*.tsx"], + "types": ["react", "jest"] } diff --git a/packages/dapp/tsconfig.test.json b/packages/dapp/tsconfig.test.json index 65ffdd4939..2c7b284162 100644 --- a/packages/dapp/tsconfig.test.json +++ b/packages/dapp/tsconfig.test.json @@ -3,4 +3,4 @@ "compilerOptions": { "module": "commonjs" } -} \ No newline at end of file +} diff --git a/packages/dapp/tslint.json b/packages/dapp/tslint.json index 372423ece1..cb621283e1 100644 --- a/packages/dapp/tslint.json +++ b/packages/dapp/tslint.json @@ -1,7 +1,5 @@ { - "extends": [ - "@joincivil/tslint-rules" - ], + "extends": ["@joincivil/tslint-rules"], "rules": { "variable-name": [true, "ban-keywords", "allow-leading-underscore"] } diff --git a/packages/debug-ui/README.md b/packages/debug-ui/README.md index 1d0fefcf1e..7c5a095494 100755 --- a/packages/debug-ui/README.md +++ b/packages/debug-ui/README.md @@ -1,4 +1,5 @@ # Static Pug + Typescript + Sass starter + This starter allows easy creation of static webpages while allowing nicieties of npm packagaes, Typescript, Sass and Pug diff --git a/packages/debug-ui/scripts/assets/article.md b/packages/debug-ui/scripts/assets/article.md index 78ebd484df..e411ff212f 100644 --- a/packages/debug-ui/scripts/assets/article.md +++ b/packages/debug-ui/scripts/assets/article.md @@ -1,8 +1,10 @@ # Eureka! + What you're seeing here right now is Jouranlism Reinvented! This article is loaded from Ethereum blockchain using the Civil Ecosystem! ## Wait, start from beginning + Ok, so [Civil](http://joincivil.com) is a New York based startup whose goal is to reinvent the business model of journalism in the internet and decentralization era. @@ -11,6 +13,7 @@ is creating an ecosystem that through economic incentives promotes high-quality news and journalism being produced. ## So how did this article work? + This article is loaded using our [open-source civil.ts library](https://github.com/joincivil/civil.ts), it talks with our [smart-contracts deployed on Ethereum](https://github.com/joincivil/contracts) and the content itself is stored on a Github gist, because why not. diff --git a/packages/debug-ui/scripts/civilActions.ts b/packages/debug-ui/scripts/civilActions.ts index c2f17c04c7..358ae294c5 100644 --- a/packages/debug-ui/scripts/civilActions.ts +++ b/packages/debug-ui/scripts/civilActions.ts @@ -1,6 +1,6 @@ import { Civil } from "@joincivil/core"; -export function initializeDebugUI(callback: (civil: Civil) => void|Promise): void { +export function initializeDebugUI(callback: (civil: Civil) => void | Promise): void { window.addEventListener("load", () => { callback(new Civil({ debug: true })); }); diff --git a/packages/debug-ui/scripts/deploy-newsroom.ts b/packages/debug-ui/scripts/deploy-newsroom.ts index 0400d34c36..bed151f5b0 100644 --- a/packages/debug-ui/scripts/deploy-newsroom.ts +++ b/packages/debug-ui/scripts/deploy-newsroom.ts @@ -1,12 +1,12 @@ import { Civil, EthAddress } from "@joincivil/core"; export async function deployNewsroom(newsroomName: string): Promise { - const civil = new Civil(); - console.log("Deploying newsroom"); - const newsroomDeploy = await civil.newsroomDeployTrusted(newsroomName); - const newsroom = await newsroomDeploy.awaitReceipt(); - const address = newsroom.address; - console.log(`\tNewsroom at: ${address}`); + const civil = new Civil(); + console.log("Deploying newsroom"); + const newsroomDeploy = await civil.newsroomDeployTrusted(newsroomName); + const newsroom = await newsroomDeploy.awaitReceipt(); + const address = newsroom.address; + console.log(`\tNewsroom at: ${address}`); - return address; + return address; } diff --git a/packages/debug-ui/scripts/parameterizerActions.ts b/packages/debug-ui/scripts/parameterizerActions.ts index 3e735a77ea..e5dd315d25 100644 --- a/packages/debug-ui/scripts/parameterizerActions.ts +++ b/packages/debug-ui/scripts/parameterizerActions.ts @@ -5,7 +5,8 @@ import BigNumber from "bignumber.js"; export async function proposeReparameterization( propName: string, newValue: BigNumber, - optionalCivil?: Civil): Promise { + optionalCivil?: Civil, +): Promise { const civil = optionalCivil || new Civil(); console.log("Propose Reparameterization"); diff --git a/packages/debug-ui/scripts/tcrActions.ts b/packages/debug-ui/scripts/tcrActions.ts index 4af80208f5..f5f5221489 100644 --- a/packages/debug-ui/scripts/tcrActions.ts +++ b/packages/debug-ui/scripts/tcrActions.ts @@ -2,10 +2,7 @@ import { Bytes32, Civil, EthAddress } from "@joincivil/core"; import { getVoteSaltHash } from "@joincivil/utils"; import BigNumber from "bignumber.js"; -export async function apply( - address: EthAddress, - deposit?: BigNumber, - optionalCivil?: Civil): Promise { +export async function apply(address: EthAddress, deposit?: BigNumber, optionalCivil?: Civil): Promise { let applicationDeposit = deposit; const civil = optionalCivil || new Civil(); diff --git a/packages/debug-ui/scripts/tsconfig.json b/packages/debug-ui/scripts/tsconfig.json index c12515fafd..cf1a2355ce 100644 --- a/packages/debug-ui/scripts/tsconfig.json +++ b/packages/debug-ui/scripts/tsconfig.json @@ -1,11 +1,12 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "declaration": false, /* Generates corresponding '.d.ts' file. */ - "sourceMap": false, /* Generates corresponding '.map' file. */ - "outDir": "../build/scripts/", /* Redirect output structure to the directory. */ - "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - "baseUrl": "./", + "declaration": false /* Generates corresponding '.d.ts' file. */, + "sourceMap": false /* Generates corresponding '.map' file. */, + "outDir": "../build/scripts/" /* Redirect output structure to the directory. */, + "rootDir": + "./" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + "baseUrl": "./" /* Module Resolution Options */ // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ @@ -27,8 +28,5 @@ // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ }, - "include": [ - "./**/*.ts", - "../node_modules/web3-typescript-typings/index.d.ts" - ] + "include": ["./**/*.ts", "../node_modules/web3-typescript-typings/index.d.ts"] } diff --git a/packages/debug-ui/scripts/votingActions.ts b/packages/debug-ui/scripts/votingActions.ts index fca07dc297..4c92aaff87 100644 --- a/packages/debug-ui/scripts/votingActions.ts +++ b/packages/debug-ui/scripts/votingActions.ts @@ -37,10 +37,7 @@ export async function revealVote( console.log("Vote Revealed."); } -export async function requestVotingRights( - numTokens: BigNumber, - optionalCivil?: Civil, -): Promise { +export async function requestVotingRights(numTokens: BigNumber, optionalCivil?: Civil): Promise { const civil = optionalCivil || new Civil(); const voting = await civil.getVotingForDeployedTCR(); @@ -60,10 +57,7 @@ export async function requestVotingRights( console.log("Voting Rights Requested"); } -export async function withdrawVotingRights( - numTokens: BigNumber, - optionalCivil?: Civil, -): Promise { +export async function withdrawVotingRights(numTokens: BigNumber, optionalCivil?: Civil): Promise { const civil = optionalCivil || new Civil(); const voting = await civil.getVotingForDeployedTCR(); diff --git a/packages/debug-ui/src/code/header.ts b/packages/debug-ui/src/code/header.ts index 9735647dca..69dd874bd8 100644 --- a/packages/debug-ui/src/code/header.ts +++ b/packages/debug-ui/src/code/header.ts @@ -5,7 +5,7 @@ import BN, { BigNumber } from "bignumber.js"; import { requestVotingRights, withdrawVotingRights } from "../../scripts/votingActions"; import { initializeDebugUI } from "../../scripts/civilActions"; -initializeDebugUI(async (civil) => { +initializeDebugUI(async civil => { if (civil.userAccount) { document.getElementById("account")!.innerHTML = "Account: " + civil.userAccount; } else { diff --git a/packages/debug-ui/src/code/indexEntry.ts b/packages/debug-ui/src/code/indexEntry.ts index 31021b6191..282a503113 100644 --- a/packages/debug-ui/src/code/indexEntry.ts +++ b/packages/debug-ui/src/code/indexEntry.ts @@ -4,49 +4,70 @@ import BN from "bignumber.js"; import { deployNewsroom } from "../../scripts/deploy-newsroom"; import { initializeDebugUI } from "../../scripts/civilActions"; -initializeDebugUI(async (civil) => { +initializeDebugUI(async civil => { setIndexListeners(); const tcr = await civil.tcrSingletonTrusted(); tcr.listingsInApplicationStage().subscribe((listing: string) => { - document.getElementById("applications")!.innerHTML += "
-
" + listing + ""; + document.getElementById("applications")!.innerHTML += + "
- " + listing + ""; }); - tcr.whitelistedListings().distinct().subscribe((listing: string) => { - document.getElementById("whitelist")!.innerHTML += "
- " + listing + ""; - }); - tcr.readyToBeWhitelistedListings().distinct().subscribe((listing: string) => { - document.getElementById("readyToWhitelist")!.innerHTML += "
- " + listing + ""; - }); - tcr.currentChallengedCommitVotePhaseListings().distinct().subscribe((listing: string) => { - document.getElementById("challengedInCommit")!.innerHTML += "
- " + listing + ""; - }); - tcr.currentChallengedRevealVotePhaseListings().distinct().subscribe((listing: string) => { - document.getElementById("challengedInReveal")!.innerHTML += "
- " + listing + ""; - }); - tcr.listingsAwaitingUpdate().distinct().subscribe((listing: string) => { - document.getElementById("canBeUpdated")!.innerHTML += "
- " + listing + ""; - }); - tcr.listingsAwaitingAppealRequest().distinct().subscribe((listing: string) => { - document.getElementById("awaitingAppealRequest")!.innerHTML += "
- " + listing + ""; - }); - tcr.listingsAwaitingAppeal().distinct().subscribe((listing: string) => { - document.getElementById("awaitingAppeal")!.innerHTML += "
- " + listing + ""; - }); - document.getElementById("tcrInfo")!.innerHTML += "
Token: " + await tcr.getTokenAddress(); + tcr + .whitelistedListings() + .distinct() + .subscribe((listing: string) => { + document.getElementById("whitelist")!.innerHTML += + "
- " + listing + ""; + }); + tcr + .readyToBeWhitelistedListings() + .distinct() + .subscribe((listing: string) => { + document.getElementById("readyToWhitelist")!.innerHTML += + "
- " + listing + ""; + }); + tcr + .currentChallengedCommitVotePhaseListings() + .distinct() + .subscribe((listing: string) => { + document.getElementById("challengedInCommit")!.innerHTML += + "
- " + listing + ""; + }); + tcr + .currentChallengedRevealVotePhaseListings() + .distinct() + .subscribe((listing: string) => { + document.getElementById("challengedInReveal")!.innerHTML += + "
- " + listing + ""; + }); + tcr + .listingsAwaitingUpdate() + .distinct() + .subscribe((listing: string) => { + document.getElementById("canBeUpdated")!.innerHTML += + "
- " + listing + ""; + }); + tcr + .listingsAwaitingAppealRequest() + .distinct() + .subscribe((listing: string) => { + document.getElementById("awaitingAppealRequest")!.innerHTML += + "
- " + listing + ""; + }); + tcr + .listingsAwaitingAppeal() + .distinct() + .subscribe((listing: string) => { + document.getElementById("awaitingAppeal")!.innerHTML += + "
- " + listing + ""; + }); + document.getElementById("tcrInfo")!.innerHTML += "
Token: " + (await tcr.getTokenAddress()); - document.getElementById("parameterizer")!.innerHTML += " " + await tcr.getParameterizerAddress(); + document.getElementById("parameterizer")!.innerHTML += " " + (await tcr.getParameterizerAddress()); }); function setIndexListeners(): void { const deployButton = document.getElementById("param-deployNewsroom")!; - deployButton.onclick = async (event) => { + deployButton.onclick = async event => { const newsroomAddress = await deployNewsroom("Test name"); window.location.assign("/newsroom.html?address=" + newsroomAddress); }; diff --git a/packages/debug-ui/src/code/newsroomEntry.ts b/packages/debug-ui/src/code/newsroomEntry.ts index 5b9e69be0c..1f3320ccd5 100644 --- a/packages/debug-ui/src/code/newsroomEntry.ts +++ b/packages/debug-ui/src/code/newsroomEntry.ts @@ -4,7 +4,7 @@ import { commitVote, revealVote } from "../../scripts/votingActions"; import { initializeDebugUI } from "../../scripts/civilActions"; import { BigNumber } from "bignumber.js"; -initializeDebugUI(async (civil) => { +initializeDebugUI(async civil => { setNewsroomListeners(); const tcr = await civil.tcrSingletonTrusted(); @@ -23,48 +23,58 @@ initializeDebugUI(async (civil) => { case ListingState.APPLYING: document.getElementById("application")!.classList.remove("hidden"); const applicationExpiryDate = await tcr.getApplicationExpiryDate(address); - document.getElementById("applicationInfo")!.innerHTML = "Application Phase active.
" + - "If not challenged, listing can be whitelisted at: " + applicationExpiryDate; + document.getElementById("applicationInfo")!.innerHTML = + "Application Phase active.
" + "If not challenged, listing can be whitelisted at: " + applicationExpiryDate; break; case ListingState.CHALLENGED_IN_COMMIT_VOTE_PHASE: document.getElementById("challenge")!.classList.remove("hidden"); document.getElementById("commitVote")!.classList.remove("hidden"); const commitVoteExpiryDate = await tcr.getCommitVoteExpiryDate(address); - document.getElementById("challengeInfo")!.innerHTML = "Challenge active in Commit Vote phase.
" + - "Commit Vote phase expires at: " + commitVoteExpiryDate + "
" + - "Current Challenge ID: " + challengeId; + document.getElementById("challengeInfo")!.innerHTML = + "Challenge active in Commit Vote phase.
" + + "Commit Vote phase expires at: " + + commitVoteExpiryDate + + "
" + + "Current Challenge ID: " + + challengeId; break; case ListingState.CHALLENGED_IN_REVEAL_VOTE_PHASE: document.getElementById("challenge")!.classList.remove("hidden"); document.getElementById("revealVote")!.classList.remove("hidden"); const revealVoteExpiryDate = await tcr.getRevealVoteExpiryDate(address); - document.getElementById("challengeInfo")!.innerHTML = "Challenge active in Reveal Vote phase.
" + - "Reveal Vote phase expires at: " + revealVoteExpiryDate + "
" + - "Current Challenge ID: " + challengeId; + document.getElementById("challengeInfo")!.innerHTML = + "Challenge active in Reveal Vote phase.
" + + "Reveal Vote phase expires at: " + + revealVoteExpiryDate + + "
" + + "Current Challenge ID: " + + challengeId; break; case ListingState.WAIT_FOR_APPEAL_REQUEST: document.getElementById("appeal")!.classList.remove("hidden"); const waitForAppealExpiryDate = await tcr.getRequestAppealExpiryDate(address); - document.getElementById("appealInfo")!.innerHTML = "Current waiting for listing owner to request appeal.
" + - "Request phase expires at: " + waitForAppealExpiryDate; + document.getElementById("appealInfo")!.innerHTML = + "Current waiting for listing owner to request appeal.
" + + "Request phase expires at: " + + waitForAppealExpiryDate; break; case ListingState.IN_APPEAL_PHASE: document.getElementById("appeal")!.classList.remove("hidden"); const inAppealExpiryDate = await tcr.getAppealExpiryDate(address); - document.getElementById("appealInfo")!.innerHTML = "Current waiting for JAB to judge appeal.
" + - "Appeal phase expires at: " + inAppealExpiryDate; + document.getElementById("appealInfo")!.innerHTML = + "Current waiting for JAB to judge appeal.
" + "Appeal phase expires at: " + inAppealExpiryDate; break; } - tcr.failedChallengesForListing(address).subscribe((id) => { + tcr.failedChallengesForListing(address).subscribe(id => { document.getElementById("resolvedChallenges")!.classList.remove("hidden"); document.getElementById("resolvedChallengesInfo")!.innerHTML += id + ", "; }); - tcr.successfulChallengesForListing(address).subscribe((id) => { + tcr.successfulChallengesForListing(address).subscribe(id => { document.getElementById("resolvedChallenges")!.classList.remove("hidden"); document.getElementById("resolvedChallengesInfo")!.innerHTML += id + ", "; }); @@ -77,7 +87,7 @@ function setNewsroomListeners(): void { const civil = new Civil({ debug: true }); const applyButton = document.getElementById("param-applyToTCR")!; - applyButton.onclick = async (event) => { + applyButton.onclick = async event => { if (address) { // TODO(nickreynolds): turn off button, display "deploying..." await apply(address, new BigNumber(1000), civil); @@ -88,7 +98,7 @@ function setNewsroomListeners(): void { }; const challengeButton = document.getElementById("param-challengeTCRListing")!; - challengeButton.onclick = async (event) => { + challengeButton.onclick = async event => { if (address) { // TODO(nickreynolds): turn off button, display "deploying..." await challenge(address, civil); @@ -99,7 +109,7 @@ function setNewsroomListeners(): void { }; const updateStatusButton = document.getElementById("param-updateListingStatus")!; - updateStatusButton.onclick = async (event) => { + updateStatusButton.onclick = async event => { if (address) { // TODO(nickreynolds): turn off button, display "updating..." await updateStatus(address, civil); @@ -110,7 +120,7 @@ function setNewsroomListeners(): void { }; const proposeAndApproveButton = document.getElementById("param-proposeAndApprove")!; - proposeAndApproveButton.onclick = async (event) => { + proposeAndApproveButton.onclick = async event => { // TODO(nickreynolds): fix fs // TODO(ritave): extract into scripts // const article = fs.readFileSync("assets/article.md").toString(); @@ -127,14 +137,13 @@ function setNewsroomListeners(): void { console.log("Done"); window.location.assign("/article.html?newsroomAddress=" + address + "&articleId=" + articleId); - } else { console.error("newsroom address not found in params"); } }; const commitVoteButton = document.getElementById("param-commitVote")!; - commitVoteButton.onclick = async (event) => { + commitVoteButton.onclick = async event => { const pollIDString = (document.getElementById("param-commitVotePollId")! as HTMLInputElement).value; const pollID = new BigNumber(pollIDString); const optionString = (document.getElementById("param-commitVoteOption")! as HTMLInputElement).value!; @@ -147,7 +156,7 @@ function setNewsroomListeners(): void { }; const revealVoteButton = document.getElementById("param-revealVote")!; - revealVoteButton.onclick = async (event) => { + revealVoteButton.onclick = async event => { const pollIDString = (document.getElementById("param-revealVotePollId")! as HTMLInputElement).value; const pollID = new BigNumber(pollIDString); const optionString = (document.getElementById("param-revealVoteOption")! as HTMLInputElement).value!; @@ -158,7 +167,7 @@ function setNewsroomListeners(): void { }; const claimRewardButton = document.getElementById("param-claimReward")!; - claimRewardButton.onclick = async (event) => { + claimRewardButton.onclick = async event => { const pollIDString = (document.getElementById("param-claimRewardChallengeID")! as HTMLInputElement).value; const pollID = new BigNumber(pollIDString); const saltString = (document.getElementById("param-claimRewardSalt")! as HTMLInputElement).value; diff --git a/packages/debug-ui/src/code/parameterizer.ts b/packages/debug-ui/src/code/parameterizer.ts index ac65907933..c7210fe1e0 100644 --- a/packages/debug-ui/src/code/parameterizer.ts +++ b/packages/debug-ui/src/code/parameterizer.ts @@ -5,12 +5,12 @@ import { deployNewsroom } from "../../scripts/deploy-newsroom"; import { proposeReparameterization } from "../../scripts/parameterizerActions"; import { initializeDebugUI } from "../../scripts/civilActions"; -initializeDebugUI(async (civil) => { +initializeDebugUI(async civil => { setParameterizerListeners(); const tcr = await civil.tcrSingletonTrusted(); const parameterizer = await tcr.getParameterizer(); document.getElementById("parameterizerInfo")!.innerHTML += - "
Parameterizer: " + await tcr.getParameterizerAddress(); + "
Parameterizer: " + (await tcr.getParameterizerAddress()); const keys = [ "minDeposit", @@ -28,22 +28,22 @@ initializeDebugUI(async (civil) => { "pProcessBy", ]; - keys.forEach(async (k) => { + keys.forEach(async k => { const value = await parameterizer.getParameterValue(k); - document.getElementById("parameterValues")!.innerHTML += - "
" + k + ": " + value; + document.getElementById("parameterValues")!.innerHTML += "
" + k + ": " + value; }); - parameterizer.paramPropsInApplicationPhase().subscribe((args) => - updateSectionWithParamProps("propApplications", args)); - parameterizer.paramPropsInChallengeCommitPhase().subscribe((args) => - updateSectionWithParamProps("challengedCommitProps", args)); - parameterizer.paramPropsInChallengeRevealPhase().subscribe((args) => - updateSectionWithParamProps("challengedRevealProps", args)); - parameterizer.paramPropsToProcess().subscribe((args) => - updateSectionWithParamProps("propsToBeUpdated", args)); - parameterizer.paramPropsForResolvedChallenged().subscribe((args) => - updateSectionWithParamProps("completedChallenges", args)); + parameterizer.paramPropsInApplicationPhase().subscribe(args => updateSectionWithParamProps("propApplications", args)); + parameterizer + .paramPropsInChallengeCommitPhase() + .subscribe(args => updateSectionWithParamProps("challengedCommitProps", args)); + parameterizer + .paramPropsInChallengeRevealPhase() + .subscribe(args => updateSectionWithParamProps("challengedRevealProps", args)); + parameterizer.paramPropsToProcess().subscribe(args => updateSectionWithParamProps("propsToBeUpdated", args)); + parameterizer + .paramPropsForResolvedChallenged() + .subscribe(args => updateSectionWithParamProps("completedChallenges", args)); }); function updateSectionWithParamProps(section: string, paramProp: ParamProp): void { @@ -58,7 +58,7 @@ function updateSectionWithParamProps(section: string, paramProp: ParamProp): voi function setParameterizerListeners(): void { const reparamButton = document.getElementById("param-proposeReparameterization")!; - reparamButton.onclick = async (event) => { + reparamButton.onclick = async event => { const parameterKey = (document.getElementById("param-paramKey")! as HTMLInputElement).value; const parameterValue = (document.getElementById("param-paramValue")! as HTMLInputElement).value; diff --git a/packages/debug-ui/src/code/parameters.ts b/packages/debug-ui/src/code/parameters.ts index 4ba74fbc48..96206428e6 100644 --- a/packages/debug-ui/src/code/parameters.ts +++ b/packages/debug-ui/src/code/parameters.ts @@ -5,25 +5,25 @@ */ export interface ArticleParams { - newsroomAddress: string; - articleId: number; + newsroomAddress: string; + articleId: number; } export async function getParameters(): Promise { - return new Promise((resolve, reject) => { - const content = document.getElementById("content")!; - content.classList.add("hidden"); - const inputDiv = document.getElementById("param-input")!; - inputDiv.classList.remove("hidden"); - const submitButton = document.getElementById("param-submit")!; - submitButton.onclick = (event) => { - const newsroomAddress = (document.getElementById("newsroom-address") as any).value; - const articleId = +((document.getElementById("article-id") as any).value); - inputDiv.classList.add("hidden"); - content.classList.remove("hidden"); - resolve({ - newsroomAddress, - articleId, - }); - }; - }); + return new Promise((resolve, reject) => { + const content = document.getElementById("content")!; + content.classList.add("hidden"); + const inputDiv = document.getElementById("param-input")!; + inputDiv.classList.remove("hidden"); + const submitButton = document.getElementById("param-submit")!; + submitButton.onclick = event => { + const newsroomAddress = (document.getElementById("newsroom-address") as any).value; + const articleId = +(document.getElementById("article-id") as any).value; + inputDiv.classList.add("hidden"); + content.classList.remove("hidden"); + resolve({ + newsroomAddress, + articleId, + }); + }; + }); } diff --git a/packages/debug-ui/src/code/prop.ts b/packages/debug-ui/src/code/prop.ts index ea2efcf416..135d19a4a7 100644 --- a/packages/debug-ui/src/code/prop.ts +++ b/packages/debug-ui/src/code/prop.ts @@ -25,26 +25,34 @@ window.addEventListener("load", async () => { case ParamProposalState.APPLYING: document.getElementById("application")!.classList.remove("hidden"); const applicationExpiryDate = await parameterizer.getPropApplicationExpiry(id); - document.getElementById("applicationInfo")!.innerHTML = "Application Phase active.
" + - "If not challenged, listing can be whitelisted at: " + applicationExpiryDate; + document.getElementById("applicationInfo")!.innerHTML = + "Application Phase active.
" + "If not challenged, listing can be whitelisted at: " + applicationExpiryDate; break; case ParamProposalState.CHALLENGED_IN_COMMIT_VOTE_PHASE: document.getElementById("challenge")!.classList.remove("hidden"); document.getElementById("commitVote")!.classList.remove("hidden"); const commitVoteExpiryDate = await parameterizer.getPropChallengeCommitExpiry(id); - document.getElementById("challengeInfo")!.innerHTML = "Challenge active in Commit Vote phase.
" + - "Commit Vote phase expires at: " + commitVoteExpiryDate + "
" + - "Current Challenge ID: " + challengeId; + document.getElementById("challengeInfo")!.innerHTML = + "Challenge active in Commit Vote phase.
" + + "Commit Vote phase expires at: " + + commitVoteExpiryDate + + "
" + + "Current Challenge ID: " + + challengeId; break; case ParamProposalState.CHALLENGED_IN_REVEAL_VOTE_PHASE: document.getElementById("challenge")!.classList.remove("hidden"); document.getElementById("revealVote")!.classList.remove("hidden"); const revealVoteExpiryDate = await parameterizer.getPropChallengeRevealExpiry(id); - document.getElementById("challengeInfo")!.innerHTML = "Challenge active in Reveal Vote phase.
" + - "Reveal Vote phase expires at: " + revealVoteExpiryDate + "
" + - "Current Challenge ID: " + challengeId; + document.getElementById("challengeInfo")!.innerHTML = + "Challenge active in Reveal Vote phase.
" + + "Reveal Vote phase expires at: " + + revealVoteExpiryDate + + "
" + + "Current Challenge ID: " + + challengeId; break; case ParamProposalState.READY_TO_PROCESS: @@ -56,7 +64,7 @@ window.addEventListener("load", async () => { break; } - parameterizer.pollIDsForResolvedChallenges(id).subscribe((pollID) => { + parameterizer.pollIDsForResolvedChallenges(id).subscribe(pollID => { document.getElementById("resolvedChallenges")!.classList.remove("hidden"); document.getElementById("resolvedChallengesInfo")!.innerHTML += pollID + ", "; }); @@ -69,7 +77,7 @@ function setPropListeners(): void { const civil = new Civil({ debug: true }); const challengeButton = document.getElementById("param-challengeProp")!; - challengeButton.onclick = async (event) => { + challengeButton.onclick = async event => { if (id) { // TODO(nickreynolds): turn off button, display "deploying..." await challengeProp(id, civil); @@ -80,7 +88,7 @@ function setPropListeners(): void { }; const updateStatusButton = document.getElementById("param-updatePropStatus")!; - updateStatusButton.onclick = async (event) => { + updateStatusButton.onclick = async event => { if (id) { // TODO(nickreynolds): turn off button, display "updating..." await updateProp(id, civil); @@ -91,7 +99,7 @@ function setPropListeners(): void { }; const commitVoteButton = document.getElementById("param-commitVote")!; - commitVoteButton.onclick = async (event) => { + commitVoteButton.onclick = async event => { const pollIDString = (document.getElementById("param-commitVotePollId")! as HTMLInputElement).value; const pollID = new BigNumber(pollIDString); const optionString = (document.getElementById("param-commitVoteOption")! as HTMLInputElement).value!; @@ -104,7 +112,7 @@ function setPropListeners(): void { }; const revealVoteButton = document.getElementById("param-revealVote")!; - revealVoteButton.onclick = async (event) => { + revealVoteButton.onclick = async event => { const pollIDString = (document.getElementById("param-revealVotePollId")! as HTMLInputElement).value; const pollID = new BigNumber(pollIDString); const optionString = (document.getElementById("param-revealVoteOption")! as HTMLInputElement).value!; @@ -115,7 +123,7 @@ function setPropListeners(): void { }; const claimRewardButton = document.getElementById("param-claimReward")!; - claimRewardButton.onclick = async (event) => { + claimRewardButton.onclick = async event => { const pollIDString = (document.getElementById("param-claimRewardChallengeID")! as HTMLInputElement).value; const pollID = new BigNumber(pollIDString); const saltString = (document.getElementById("param-claimRewardSalt")! as HTMLInputElement).value; diff --git a/packages/debug-ui/tsconfig.json b/packages/debug-ui/tsconfig.json index 3e3f122b0c..dc10785622 100755 --- a/packages/debug-ui/tsconfig.json +++ b/packages/debug-ui/tsconfig.json @@ -6,8 +6,5 @@ "rootDir": "./src/code/", "baseUrl": "./src/code/" }, - "include": [ - "./src/code/**/*.ts", - "../../node_modules/web3-typescript-typings/index.d.ts" - ] + "include": ["./src/code/**/*.ts", "../../node_modules/web3-typescript-typings/index.d.ts"] } diff --git a/packages/debug-ui/tslint.json b/packages/debug-ui/tslint.json index dd065de24e..21d82e2515 100644 --- a/packages/debug-ui/tslint.json +++ b/packages/debug-ui/tslint.json @@ -1,3 +1,3 @@ { - "extends": ["@joincivil/tslint-rules"] + "extends": ["@joincivil/tslint-rules"] } diff --git a/packages/dev-utils/README.md b/packages/dev-utils/README.md index 107a6ad958..3554fda741 100644 --- a/packages/dev-utils/README.md +++ b/packages/dev-utils/README.md @@ -1,2 +1,3 @@ # dev-utils + Utilities shared between multiple JoinCivil packages diff --git a/packages/dev-utils/scripts/generate-from-files/bin.ts b/packages/dev-utils/scripts/generate-from-files/bin.ts index a69e70f31f..b8ebcba0b0 100644 --- a/packages/dev-utils/scripts/generate-from-files/bin.ts +++ b/packages/dev-utils/scripts/generate-from-files/bin.ts @@ -21,29 +21,19 @@ const parser = new ArgumentParser({ description: USAGE, prog: "generate-from-files", }); -parser.addArgument( - [ "inputGlob" ], - { - help: "Files that will be put as context for the template", - }, -); -parser.addArgument( - [ "templateFile" ], - { - help: "Mustache template file that will be rendered", - }, -); -parser.addArgument( - [ "outFile" ], - { - help: "File that the rendered tempalate will be saved", - }, -); +parser.addArgument(["inputGlob"], { + help: "Files that will be put as context for the template", +}); +parser.addArgument(["templateFile"], { + help: "Mustache template file that will be rendered", +}); +parser.addArgument(["outFile"], { + help: "File that the rendered tempalate will be saved", +}); const args = parser.parseArgs(); const { inputGlob, templateFile, outFile } = args; -generateFromFiles(inputGlob, templateFile, outFile, console.log.bind(console)) - .catch((error) => { - console.error("Failed to parse", error); - process.exit(1); - }); +generateFromFiles(inputGlob, templateFile, outFile, console.log.bind(console)).catch(error => { + console.error("Failed to parse", error); + process.exit(1); +}); diff --git a/packages/dev-utils/scripts/generate-from-files/index.ts b/packages/dev-utils/scripts/generate-from-files/index.ts index da72749be3..1847b465a9 100644 --- a/packages/dev-utils/scripts/generate-from-files/index.ts +++ b/packages/dev-utils/scripts/generate-from-files/index.ts @@ -10,9 +10,11 @@ import { ContextData, helpers } from "./utils"; const debug = Debug("generate-from-files"); export async function generateFromFiles( - inputGlob: string, - templateFile: string, - outFile: string, logger: (...params: any[]) => void = debug): Promise { + inputGlob: string, + templateFile: string, + outFile: string, + logger: (...params: any[]) => void = debug, +): Promise { const options: glob.IOptions = { silent: true, // we throw the error strict: true, @@ -35,9 +37,7 @@ export async function generateFromFiles( Handlebars.registerHelper(helpers); logger("Rendering: " + templateFile); - const templateString = fs - .readFileSync(templateFile) - .toString(); + const templateString = fs.readFileSync(templateFile).toString(); const templateRenderer = Handlebars.compile(templateString); fs.writeFileSync(outFile, templateRenderer(context)); logger("Wrote: " + outFile); diff --git a/packages/dev-utils/scripts/generate-from-files/utils.ts b/packages/dev-utils/scripts/generate-from-files/utils.ts index b833c1bb22..539d390747 100644 --- a/packages/dev-utils/scripts/generate-from-files/utils.ts +++ b/packages/dev-utils/scripts/generate-from-files/utils.ts @@ -9,7 +9,7 @@ export const helpers = { capitalize: (what: string) => what .split(" ") - .map((word) => word[0].toUpperCase() + word.slice(1)) + .map(word => word[0].toUpperCase() + word.slice(1)) .join(" "), snakecase: toSnakeCase, }; diff --git a/packages/dev-utils/scripts/strip-artifacts.ts b/packages/dev-utils/scripts/strip-artifacts.ts index b2f10404ad..06f7867e64 100644 --- a/packages/dev-utils/scripts/strip-artifacts.ts +++ b/packages/dev-utils/scripts/strip-artifacts.ts @@ -52,7 +52,7 @@ glob(FILES_GLOB, (err, files) => { return process.exit(1); } - files.forEach((filePath) => { + files.forEach(filePath => { const filename = path.basename(filePath); const outPath = path.posix.format({ base: filename, diff --git a/packages/dev-utils/src/globals.d.ts b/packages/dev-utils/src/globals.d.ts index 39df3f8526..625d7310fb 100644 --- a/packages/dev-utils/src/globals.d.ts +++ b/packages/dev-utils/src/globals.d.ts @@ -1,4 +1,4 @@ declare function toSnakeCase(str: string): string; -declare module 'to-snake-case' { - export = toSnakeCase; +declare module "to-snake-case" { + export = toSnakeCase; } diff --git a/packages/dev-utils/src/test/index.ts b/packages/dev-utils/src/test/index.ts index 3b1c35ae03..a5af4af31e 100644 --- a/packages/dev-utils/src/test/index.ts +++ b/packages/dev-utils/src/test/index.ts @@ -19,7 +19,7 @@ export function dummyWeb3Provider(): Web3.Provider { export async function rpc( provider: Web3.Provider, method: string, - ...params: any[], + ...params: any[] ): Promise { return new Promise((resolve, reject) => { provider.sendAsync( @@ -37,7 +37,8 @@ export async function rpc( return reject((result as any).error); } return resolve(result); - }); + }, + ); }); } @@ -47,11 +48,11 @@ export async function advanceEvmTime(time: number): Promise { } export function getParamFromTxEvent(tx: Web3.TransactionReceipt, param: string, event: string): T { - const eventAny = tx.logs.find((log) => (log as Web3.DecodedLogEntry).event === event); + const eventAny = tx.logs.find(log => (log as Web3.DecodedLogEntry).event === event); if (eventAny === undefined) { throw new Error("No event found with name: " + event); } - const foundEvent = (eventAny as Web3.DecodedLogEntry); + const foundEvent = eventAny as Web3.DecodedLogEntry; const paramAny = foundEvent.args[param]; if (paramAny === undefined) { throw new Error("No param found with name: " + param + " in event: " + event); diff --git a/packages/dev-utils/src/test/test.d.ts b/packages/dev-utils/src/test/test.d.ts index a4b5d34199..08848d6b7c 100644 --- a/packages/dev-utils/src/test/test.d.ts +++ b/packages/dev-utils/src/test/test.d.ts @@ -18,7 +18,7 @@ declare namespace Chai { declare var artifacts: { require: (name: string) => any }; declare var contract: (contractName: string, tests: (accounts: string[]) => void) => void; declare var describe: (functionName: string, tests: () => void) => void; -declare var it: (description: string, test?: () => Promise|void) => void; -declare var before: (func: () => Promise|void) => void; -declare var beforeEach: (func: () => Promise|void) => void; +declare var it: (description: string, test?: () => Promise | void) => void; +declare var before: (func: () => Promise | void) => void; +declare var beforeEach: (func: () => Promise | void) => void; declare var web3: any; diff --git a/packages/dev-utils/tslint.json b/packages/dev-utils/tslint.json index 55fa3ee05a..21d82e2515 100644 --- a/packages/dev-utils/tslint.json +++ b/packages/dev-utils/tslint.json @@ -1,5 +1,3 @@ { - "extends": [ - "@joincivil/tslint-rules" - ] + "extends": ["@joincivil/tslint-rules"] } diff --git a/packages/editor/out.zip b/packages/editor/out.zip deleted file mode 100644 index a86001866bc2e40598ac70a310adb7c76164b067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708528 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%0Ah@C&O4w#KWMPl9@V_(&8Zc4rTHJmw;e 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 z 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%0A%38E(tOe4DgRK((S;TO!2*8 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�+;O=jp*P&#b_aLbB$lydi|ugjKT>tr-LKt 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 AcK`qY diff --git a/packages/editor/out/iframe.html b/packages/editor/out/iframe.html deleted file mode 100644 index b239194daa..0000000000 --- a/packages/editor/out/iframe.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - Storybook - - - - - -

-
- - diff --git a/packages/editor/out/index.html b/packages/editor/out/index.html deleted file mode 100644 index 07dc70aa43..0000000000 --- a/packages/editor/out/index.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - Storybook - - - - - -
- - diff --git a/packages/editor/out/static/manager.570ebc325831f69ceaf2.bundle.js b/packages/editor/out/static/manager.570ebc325831f69ceaf2.bundle.js deleted file mode 100644 index 1d9349b7ed..0000000000 --- a/packages/editor/out/static/manager.570ebc325831f69ceaf2.bundle.js +++ /dev/null @@ -1 +0,0 @@ -!function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}__webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module.default}:function getModuleExports(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=1883)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(340)},function(module,exports){var g;g=function(){return this}();try{g=g||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(g=window)}module.exports=g},,,function(module,exports,__webpack_require__){module.exports=__webpack_require__(358)()},function(module,exports){var core=module.exports={version:"2.5.3"};"number"==typeof __e&&(__e=core)},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;var _assign2=function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(75));exports.default=_assign2.default||function(target){for(var i=1;i2?arguments[2]:{},props=keys(map);hasSymbols&&(props=props.concat(Object.getOwnPropertySymbols(map))),foreach(props,function(name){defineProperty(object,name,map[name],predicates[name])})};defineProperties.supportsDescriptors=!!supportsDescriptors,module.exports=defineProperties},function(module,exports,__webpack_require__){var aFunction=__webpack_require__(55);module.exports=function(fn,that,length){if(aFunction(fn),void 0===that)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;var _iterator2=_interopRequireDefault(__webpack_require__(374)),_symbol2=_interopRequireDefault(__webpack_require__(188)),_typeof="function"==typeof _symbol2.default&&"symbol"==typeof _iterator2.default?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof _symbol2.default&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?"symbol":typeof obj};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default="function"==typeof _symbol2.default&&"symbol"===_typeof(_iterator2.default)?function(obj){return void 0===obj?"undefined":_typeof(obj)}:function(obj){return obj&&"function"==typeof _symbol2.default&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?"symbol":void 0===obj?"undefined":_typeof(obj)}},function(module,exports,__webpack_require__){"use strict";var warning=function(){};module.exports=warning},function(module,exports){var global=module.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=global)},function(module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},function(module,exports,__webpack_require__){var store=__webpack_require__(99)("wks"),uid=__webpack_require__(53),Symbol=__webpack_require__(25).Symbol,USE_SYMBOL="function"==typeof Symbol;(module.exports=function(name){return store[name]||(store[name]=USE_SYMBOL&&Symbol[name]||(USE_SYMBOL?Symbol:uid)("Symbol."+name))}).store=store},function(module,exports,__webpack_require__){"use strict";var implementation=__webpack_require__(274);module.exports=Function.prototype.bind||implementation},function(module,exports,__webpack_require__){var dP=__webpack_require__(17),createDesc=__webpack_require__(56);module.exports=__webpack_require__(20)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){return object[key]=value,object}},function(module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return!0}}},function(module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(318),__esModule:!0}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.default=function(obj,keys){var target={};for(var i in obj)keys.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(obj,i)&&(target[i]=obj[i]);return target}},function(module,exports,__webpack_require__){var IObject=__webpack_require__(111),defined=__webpack_require__(112);module.exports=function(it){return IObject(defined(it))}},,,,function(module,exports,__webpack_require__){module.exports=!__webpack_require__(70)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(module,exports,__webpack_require__){var dP=__webpack_require__(40),createDesc=__webpack_require__(72);module.exports=__webpack_require__(38)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){return object[key]=value,object}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(71),IE8_DOM_DEFINE=__webpack_require__(148),toPrimitive=__webpack_require__(98),dP=Object.defineProperty;exports.f=__webpack_require__(38)?Object.defineProperty:function defineProperty(O,P,Attributes){if(anObject(O),P=toPrimitive(P,!0),anObject(Attributes),IE8_DOM_DEFINE)try{return dP(O,P,Attributes)}catch(e){}if("get"in Attributes||"set"in Attributes)throw TypeError("Accessors not supported!");return"value"in Attributes&&(O[P]=Attributes.value),O}},function(module,exports,__webpack_require__){var IObject=__webpack_require__(243),defined=__webpack_require__(152);module.exports=function(it){return IObject(defined(it))}},function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(165)},function(module,exports,__webpack_require__){var defined=__webpack_require__(112);module.exports=function(it){return Object(defined(it))}},function(module,exports,__webpack_require__){"use strict";var $at=__webpack_require__(324)(!0);__webpack_require__(119)(String,"String",function(iterated){this._t=String(iterated),this._i=0},function(){var point,O=this._t,index=this._i;return index>=O.length?{value:void 0,done:!0}:(point=$at(O,index),this._i+=point.length,{value:point,done:!1})})},function(module,exports){module.exports={}},function(module,exports,__webpack_require__){__webpack_require__(326);for(var global=__webpack_require__(12),hide=__webpack_require__(29),Iterators=__webpack_require__(45),TO_STRING_TAG=__webpack_require__(13)("toStringTag"),DOMIterables="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),i=0;iindex;index++)if((result=entries?f(anObject(step=iterable[index])[0],step[1]):f(iterable[index]))===BREAK||result===RETURN)return result}else for(iterator=iterFn.call(iterable);!(step=iterator.next()).done;)if((result=call(iterator,f,step.value,entries))===BREAK||result===RETURN)return result}).BREAK=BREAK,exports.RETURN=RETURN},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;var _from2=function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(206));exports.default=function(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i0?min(toInteger(it),9007199254740991):0}},function(module,exports){var id=0,px=Math.random();module.exports=function(key){return"Symbol(".concat(void 0===key?"":key,")_",(++id+px).toString(36))}},function(module,exports){exports.f={}.propertyIsEnumerable},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddonStore=void 0;var _keys2=_interopRequireDefault(__webpack_require__(32)),_classCallCheck3=_interopRequireDefault(__webpack_require__(6)),_createClass3=_interopRequireDefault(__webpack_require__(8));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var AddonStore=exports.AddonStore=function(){function AddonStore(){(0,_classCallCheck3.default)(this,AddonStore),this.loaders={},this.panels={},this.channel=null,this.preview=null,this.database=null}return(0,_createClass3.default)(AddonStore,[{key:"getChannel",value:function getChannel(){if(!this.channel)throw new Error("Accessing nonexistent addons channel, see https://storybook.js.org/basics/faq/#why-is-there-no-addons-channel");return this.channel}},{key:"setChannel",value:function setChannel(channel){this.channel=channel}},{key:"getPreview",value:function getPreview(){return this.preview}},{key:"setPreview",value:function setPreview(preview){this.preview=preview}},{key:"getDatabase",value:function getDatabase(){return this.database}},{key:"setDatabase",value:function setDatabase(database){this.database=database}},{key:"getPanels",value:function getPanels(){return this.panels}},{key:"addPanel",value:function addPanel(name,panel){this.panels[name]=panel}},{key:"register",value:function register(name,loader){this.loaders[name]=loader}},{key:"loadAddons",value:function loadAddons(api){var _this=this;(0,_keys2.default)(this.loaders).map(function(name){return _this.loaders[name]}).forEach(function(loader){return loader(api)})}}]),AddonStore}();exports.default=new AddonStore},function(module,exports){},function(module,exports){module.exports=!0},function(module,exports,__webpack_require__){var anObject=__webpack_require__(18),dPs=__webpack_require__(205),enumBugKeys=__webpack_require__(116),IE_PROTO=__webpack_require__(114)("IE_PROTO"),Empty=function(){},createDict=function(){var iframeDocument,iframe=__webpack_require__(109)("iframe"),i=enumBugKeys.length;for(iframe.style.display="none",__webpack_require__(171).appendChild(iframe),iframe.src="javascript:",(iframeDocument=iframe.contentWindow.document).open(),iframeDocument.write("

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