From 4727ddcc0109f9db3f3f489df1ed42496ffe5beb Mon Sep 17 00:00:00 2001 From: KevinMansour <77366744+KevinMansour@users.noreply.github.com> Date: Fri, 23 Jun 2023 21:28:19 -0400 Subject: [PATCH 01/27] whiteList_players --- packages/hardhat/contracts/Quest.sol | 41 ++++- packages/hardhat/contracts/QuestFactory.sol | 12 +- packages/hardhat/test/Quest.test.ts | 155 ++++++++++++++++++ packages/hardhat/test/QuestFactory.test.ts | 20 ++- packages/hardhat/test/test-helper.ts | 6 +- packages/hardhat/typechain/Quest.d.ts | 86 ++++++++++ packages/hardhat/typechain/QuestFactory.d.ts | 37 ++++- .../factories/OwnableCeleste__factory.ts | 2 +- .../factories/QuestFactory__factory.ts | 13 +- .../typechain/factories/Quest__factory.ts | 56 ++++++- .../typechain/factories/TokenMock__factory.ts | 2 +- 11 files changed, 404 insertions(+), 26 deletions(-) diff --git a/packages/hardhat/contracts/Quest.sol b/packages/hardhat/contracts/Quest.sol index b2a7cfba..0c970c5d 100644 --- a/packages/hardhat/contracts/Quest.sol +++ b/packages/hardhat/contracts/Quest.sol @@ -7,6 +7,7 @@ import "@openzeppelin/contracts/utils/math/SafeMath.sol"; import "./libraries/Deposit.sol"; import "./libraries/Models.sol"; import "./libraries/IExecutable.sol"; +import "hardhat/console.sol"; contract Quest is IExecutable { using SafeMath for uint256; @@ -22,7 +23,7 @@ contract Quest is IExecutable { address public aragonGovernAddress; address payable public fundsRecoveryAddress; uint32 public maxPlayers; // 0 for unlimited players - + bool public isWhiteList; Models.Claim[] public claims; Models.Deposit public createDeposit; Models.Deposit public playDeposit; @@ -33,6 +34,14 @@ contract Quest is IExecutable { event QuestClaimed(bytes evidence, address player, uint256 amount); event QuestPlayed(address player, uint256 timestamp); event QuestUnplayed(address player, uint256 timestamp); + event WhiteListChanged(address[] whiteListPlayers, uint256 timestamp); + modifier OnlyCreator() { + require( + msg.sender == questCreator, + "Only creator can call this function" + ); + _; + } constructor( string memory _questTitle, @@ -44,8 +53,18 @@ contract Quest is IExecutable { Models.Deposit memory _createDeposit, Models.Deposit memory _playDeposit, address _questCreator, - uint32 _maxPlayers + uint32 _maxPlayers, + bool _isWhiteList ) { + // uint32 check = _isWhiteList ? 1 : 0; + // console.log("check:", check); + // console.log("Max players:", maxPlayers); + // console.log("Maxplayers * check = ", maxPlayers * check); + require( + !(_maxPlayers > 0 && _isWhiteList), + // _maxPlayers * check == 0, + "ERROR: Can't create a whiteListed quest with max players greater than 0 (infinity)" + ); questTitle = _questTitle; questDetailsRef = _questDetailsRef; rewardToken = _rewardToken; @@ -58,6 +77,7 @@ contract Quest is IExecutable { isCreateDepositReleased = false; maxPlayers = _maxPlayers; + isWhiteList = _isWhiteList; } /* @@ -169,6 +189,10 @@ contract Quest is IExecutable { * emit QuestPlayed with player and timestamp */ function play(address _player) external { + require( + isWhiteList == false, + "ERROR: Can't self register and play a whitelisted Quest" + ); require( msg.sender == _player || msg.sender == questCreator, "ERROR: Sender not player nor creator" @@ -187,6 +211,15 @@ contract Quest is IExecutable { emit QuestPlayed(_player, block.timestamp); } + function setWhiteList(address[] memory _players) external OnlyCreator { + require( + isWhiteList == true, + "ERROR: Can't set the white list to a non-whitelisted contract" + ); + playerList = _players; + emit WhiteListChanged(_players, block.timestamp); + } + /** * Unregister a player from the quest. (sender could be the player or quest creator) * @param _player Player address. @@ -197,6 +230,10 @@ contract Quest is IExecutable { * emit QuestUnplayed with player and timestamp */ function unplay(address _player) external { + require( + isWhiteList == false, + "ERROR: can't unplay a whitelisted quest" + ); require( msg.sender == _player || msg.sender == questCreator, "ERROR: Sender not player nor creator" diff --git a/packages/hardhat/contracts/QuestFactory.sol b/packages/hardhat/contracts/QuestFactory.sol index 8ff88372..b457ae65 100644 --- a/packages/hardhat/contracts/QuestFactory.sol +++ b/packages/hardhat/contracts/QuestFactory.sol @@ -27,7 +27,8 @@ contract QuestFactory is Ownable { address playDepositToken, uint256 playDepositAmount, address creator, - uint32 maxPlayers + uint32 maxPlayers, + bool isWhiteList ); event CreateDepositChanged( @@ -94,7 +95,8 @@ contract QuestFactory is Ownable { IERC20 _rewardToken, uint256 _expireTime, address payable _fundsRecoveryAddress, - uint32 _maxPlayers + uint32 _maxPlayers, + bool _isWhiteList ) external returns (address) { Quest quest = new Quest( _questTitle, @@ -106,7 +108,8 @@ contract QuestFactory is Ownable { Models.Deposit(createDeposit.token, createDeposit.amount), Models.Deposit(playDeposit.token, playDeposit.amount), msg.sender, - _maxPlayers + _maxPlayers, + _isWhiteList ); // Collect deposit from quest creator and send it to quest @@ -124,7 +127,8 @@ contract QuestFactory is Ownable { address(playDeposit.token), playDeposit.amount, msg.sender, - _maxPlayers + _maxPlayers, + _isWhiteList ); return address(quest); diff --git a/packages/hardhat/test/Quest.test.ts b/packages/hardhat/test/Quest.test.ts index fa1ff278..1f836fa7 100644 --- a/packages/hardhat/test/Quest.test.ts +++ b/packages/hardhat/test/Quest.test.ts @@ -734,6 +734,39 @@ describe("[Contract] Quest", function () { // Assert await expect(act()).to.be.revertedWith("ERROR: Player already exists"); }); + it("SHOULD revert if it's a whitelisted quest", async () => { + // Arrange + const quest = await deployQuest( + "fakeTitle", + "0x", + rewardToken, + epochNow + 3600, // in 1 hour + govern.address, + creator.address, + fromNumber(0), + createDepositToken, + depositAmount, + playDepositToken, + depositAmount, + creator, + 0, + true + ); + const playerInitialBalance = fromNumber(1000); + await playDepositToken + .connect(player) + .mint(player.address, playerInitialBalance); + await playDepositToken + .connect(player) + .approve(quest.address, depositAmount); + // Act + const act = () => quest.connect(player).play(player.address); + + // Assert + await expect(act()).to.be.revertedWith( + "ERROR: Can't self register and play a whitelisted Quest" + ); + }); }); describe("unplay()", () => { @@ -869,6 +902,128 @@ describe("[Contract] Quest", function () { // Assert await expect(act()).to.be.revertedWith("ERROR: player not in list"); }); + it("SHOULD revert WHEN quest is whitelisted", async () => { + // Arrange + const quest = await deployQuest( + "fakeTitle", + "0x", + rewardToken, + epochNow + 3600, // in 1 hour + govern.address, + creator.address, + fromNumber(0), + createDepositToken, + depositAmount, + playDepositToken, + depositAmount, + creator, + 0, + true + ); + const playerInitialBalance = fromNumber(1000); + await playDepositToken + .connect(player) + .mint(player.address, playerInitialBalance); + await playDepositToken + .connect(player) + .approve(quest.address, depositAmount); + + // Act + const act = () => quest.connect(player).unplay(player.address); + + // Assert + await expect(act()).to.be.revertedWith( + "ERROR: can't unplay a whitelisted quest" + ); + }); + }); + describe.only("constructor()", () => { + it("SHOULD revert if max players greater than 0 and isWhiteList", async () => { + //Arrange + const maxPlayers = 3; + + //Act + const act = () => + deployQuest( + "fakeTitle", + "0x", + rewardToken, + epochNow + 3600, // in 1 hour + govern.address, + creator.address, + fromNumber(0), + createDepositToken, + depositAmount, + playDepositToken, + depositAmount, + creator, + maxPlayers, + true + ); + //Assert + await expect(act()).to.be.revertedWith( + "ERROR: Can't create a whiteListed quest with max players greater than 0 (infinity)" + ); + }); + }); + describe("setWhiteList()", () => { + it("SHOULD set the player list to the one in the parameters", async () => { + const quest = await deployQuest( + "fakeTitle", + "0x", + rewardToken, + epochNow + 3600, // in 1 hour + govern.address, + creator.address, + fromNumber(0), + createDepositToken, + depositAmount, + playDepositToken, + depositAmount, + creator, + 0, + true + ); + const act = () => + quest.connect(creator).setWhiteList([player.address, other.address]); + await expect(act()).to.emit(quest, "WhiteListChanged"); + expect(await quest.getPlayers()).to.deep.eq([ + player.address, + other.address, + ]); + expect(await quest.canExecute(player.address)).to.eq(true); + expect(await quest.canExecute(other.address)).to.eq(true); + }); + it("SHOULD revert if it's not a whitelisted quest", async () => { + const quest = await deployQuest( + "fakeTitle", + "0x", + rewardToken, + epochNow + 3600, // in 1 hour + govern.address, + creator.address, + fromNumber(0), + createDepositToken, + depositAmount, + playDepositToken, + depositAmount, + creator, + 0, + false + ); + // const act = () => + // quest + // .connect(govern) + // .claim(evidence, player.address, claimAmount, false); + + // // Assert + // await expect(act()).to.be.revertedWith("ERROR: No evidence"); + const act = () => + quest.connect(creator).setWhiteList([player.address, other.address]); + await expect(act()).to.be.revertedWith( + "ERROR: Can't set the white list to a non-whitelisted contract" + ); + }); }); describe("getPlayers()", () => { diff --git a/packages/hardhat/test/QuestFactory.test.ts b/packages/hardhat/test/QuestFactory.test.ts index b14a815d..06c93f99 100644 --- a/packages/hardhat/test/QuestFactory.test.ts +++ b/packages/hardhat/test/QuestFactory.test.ts @@ -78,6 +78,7 @@ describe("[Contract] QuestFactory", function () { const detailIPFS = "0x"; const expireTime = 0; // Unix Epoch 0 const maxPlayers = 1; + const isWhiteList = false; await createDepositToken .connect(owner) .approve(questFactoryContract.address, depositAmount); @@ -91,7 +92,8 @@ describe("[Contract] QuestFactory", function () { rewardToken.address, expireTime, owner.address, - maxPlayers + maxPlayers, + isWhiteList ) ).to.emit(questFactoryContract, "QuestCreated"); }); @@ -102,6 +104,7 @@ describe("[Contract] QuestFactory", function () { const detailIPFS = "0x"; const expireTime = 0; // Unix Epoch 0 const maxPlayers = 1; + const isWhiteList = false; await createDepositToken .connect(owner) @@ -115,7 +118,8 @@ describe("[Contract] QuestFactory", function () { rewardToken.address, expireTime, owner.address, - maxPlayers + maxPlayers, + isWhiteList ) ); @@ -131,6 +135,7 @@ describe("[Contract] QuestFactory", function () { const detailIPFS = "0x"; const expireTime = 0; // Unix Epoch 0 const maxPlayers = 1; + const isWhiteList = false; await createDepositToken .connect(owner) @@ -143,7 +148,8 @@ describe("[Contract] QuestFactory", function () { rewardToken.address, expireTime, owner.address, - maxPlayers + maxPlayers, + isWhiteList ); // Assert @@ -183,6 +189,7 @@ describe("[Contract] QuestFactory", function () { it("already created quests SHOULD keep old deposit WHEN change deposit", async () => { // Arrange const maxPlayers = 1; + const isWhiteList = false; await createDepositToken .connect(owner) .approve(questFactoryContract.address, depositAmount); @@ -195,7 +202,8 @@ describe("[Contract] QuestFactory", function () { rewardToken.address, 0, owner.address, - maxPlayers + maxPlayers, + isWhiteList ) ); const quest = new Quest__factory(owner).attach(questAddress); @@ -243,6 +251,7 @@ describe("[Contract] QuestFactory", function () { it("already created quests SHOULD keep old deposit WHEN change deposit", async () => { // Arrange const maxPlayers = 1; + const isWhiteList = false; await createDepositToken .connect(owner) .approve(questFactoryContract.address, depositAmount); @@ -255,7 +264,8 @@ describe("[Contract] QuestFactory", function () { rewardToken.address, 0, owner.address, - maxPlayers + maxPlayers, + isWhiteList ) ); const quest = new Quest__factory(owner).attach(questAddress); diff --git a/packages/hardhat/test/test-helper.ts b/packages/hardhat/test/test-helper.ts index c26b5b6a..85ddb44f 100644 --- a/packages/hardhat/test/test-helper.ts +++ b/packages/hardhat/test/test-helper.ts @@ -21,7 +21,8 @@ export const deployQuest = async ( playDepositToken: TokenMock, playDepositAmount: BigNumber, creator: SignerWithAddress, - maxPlayers: number = 0 + maxPlayers: number = 0, + isWhiteList: boolean = false ) => { const quest = await new Quest__factory(creator).deploy( title, @@ -33,7 +34,8 @@ export const deployQuest = async ( { token: createDepositToken.address, amount: createDepositAmount }, { token: playDepositToken.address, amount: playDepositAmount }, creator.address, - maxPlayers + maxPlayers, + isWhiteList ); await quest.deployed(); await rewardToken.connect(quest.signer).mint(quest.address, initialBalance); diff --git a/packages/hardhat/typechain/Quest.d.ts b/packages/hardhat/typechain/Quest.d.ts index df774282..4ce1d4a3 100644 --- a/packages/hardhat/typechain/Quest.d.ts +++ b/packages/hardhat/typechain/Quest.d.ts @@ -31,6 +31,7 @@ interface QuestInterface extends ethers.utils.Interface { "fundsRecoveryAddress()": FunctionFragment; "getPlayers()": FunctionFragment; "isCreateDepositReleased()": FunctionFragment; + "isWhiteList()": FunctionFragment; "maxPlayers()": FunctionFragment; "play(address)": FunctionFragment; "playDeposit()": FunctionFragment; @@ -39,6 +40,7 @@ interface QuestInterface extends ethers.utils.Interface { "questTitle()": FunctionFragment; "recoverFundsAndDeposit()": FunctionFragment; "rewardToken()": FunctionFragment; + "setWhiteList(address[])": FunctionFragment; "unplay(address)": FunctionFragment; }; @@ -75,6 +77,10 @@ interface QuestInterface extends ethers.utils.Interface { functionFragment: "isCreateDepositReleased", values?: undefined ): string; + encodeFunctionData( + functionFragment: "isWhiteList", + values?: undefined + ): string; encodeFunctionData( functionFragment: "maxPlayers", values?: undefined @@ -104,6 +110,10 @@ interface QuestInterface extends ethers.utils.Interface { functionFragment: "rewardToken", values?: undefined ): string; + encodeFunctionData( + functionFragment: "setWhiteList", + values: [string[]] + ): string; encodeFunctionData(functionFragment: "unplay", values: [string]): string; decodeFunctionResult( @@ -127,6 +137,10 @@ interface QuestInterface extends ethers.utils.Interface { functionFragment: "isCreateDepositReleased", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "isWhiteList", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "maxPlayers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "play", data: BytesLike): Result; decodeFunctionResult( @@ -150,17 +164,23 @@ interface QuestInterface extends ethers.utils.Interface { functionFragment: "rewardToken", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "setWhiteList", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "unplay", data: BytesLike): Result; events: { "QuestClaimed(bytes,address,uint256)": EventFragment; "QuestPlayed(address,uint256)": EventFragment; "QuestUnplayed(address,uint256)": EventFragment; + "WhiteListChanged(address[],uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "QuestClaimed"): EventFragment; getEvent(nameOrSignatureOrTopic: "QuestPlayed"): EventFragment; getEvent(nameOrSignatureOrTopic: "QuestUnplayed"): EventFragment; + getEvent(nameOrSignatureOrTopic: "WhiteListChanged"): EventFragment; } export class Quest extends Contract { @@ -250,6 +270,10 @@ export class Quest extends Contract { "isCreateDepositReleased()"(overrides?: CallOverrides): Promise<[boolean]>; + isWhiteList(overrides?: CallOverrides): Promise<[boolean]>; + + "isWhiteList()"(overrides?: CallOverrides): Promise<[boolean]>; + maxPlayers(overrides?: CallOverrides): Promise<[number]>; "maxPlayers()"(overrides?: CallOverrides): Promise<[number]>; @@ -291,6 +315,16 @@ export class Quest extends Contract { "rewardToken()"(overrides?: CallOverrides): Promise<[string]>; + setWhiteList( + _players: string[], + overrides?: Overrides + ): Promise; + + "setWhiteList(address[])"( + _players: string[], + overrides?: Overrides + ): Promise; + unplay( _player: string, overrides?: Overrides @@ -375,6 +409,10 @@ export class Quest extends Contract { "isCreateDepositReleased()"(overrides?: CallOverrides): Promise; + isWhiteList(overrides?: CallOverrides): Promise; + + "isWhiteList()"(overrides?: CallOverrides): Promise; + maxPlayers(overrides?: CallOverrides): Promise; "maxPlayers()"(overrides?: CallOverrides): Promise; @@ -416,6 +454,16 @@ export class Quest extends Contract { "rewardToken()"(overrides?: CallOverrides): Promise; + setWhiteList( + _players: string[], + overrides?: Overrides + ): Promise; + + "setWhiteList(address[])"( + _players: string[], + overrides?: Overrides + ): Promise; + unplay(_player: string, overrides?: Overrides): Promise; "unplay(address)"( @@ -497,6 +545,10 @@ export class Quest extends Contract { "isCreateDepositReleased()"(overrides?: CallOverrides): Promise; + isWhiteList(overrides?: CallOverrides): Promise; + + "isWhiteList()"(overrides?: CallOverrides): Promise; + maxPlayers(overrides?: CallOverrides): Promise; "maxPlayers()"(overrides?: CallOverrides): Promise; @@ -533,6 +585,13 @@ export class Quest extends Contract { "rewardToken()"(overrides?: CallOverrides): Promise; + setWhiteList(_players: string[], overrides?: CallOverrides): Promise; + + "setWhiteList(address[])"( + _players: string[], + overrides?: CallOverrides + ): Promise; + unplay(_player: string, overrides?: CallOverrides): Promise; "unplay(address)"( @@ -547,6 +606,8 @@ export class Quest extends Contract { QuestPlayed(player: null, timestamp: null): EventFilter; QuestUnplayed(player: null, timestamp: null): EventFilter; + + WhiteListChanged(whiteListPlayers: null, timestamp: null): EventFilter; }; estimateGas: { @@ -604,6 +665,10 @@ export class Quest extends Contract { "isCreateDepositReleased()"(overrides?: CallOverrides): Promise; + isWhiteList(overrides?: CallOverrides): Promise; + + "isWhiteList()"(overrides?: CallOverrides): Promise; + maxPlayers(overrides?: CallOverrides): Promise; "maxPlayers()"(overrides?: CallOverrides): Promise; @@ -636,6 +701,13 @@ export class Quest extends Contract { "rewardToken()"(overrides?: CallOverrides): Promise; + setWhiteList(_players: string[], overrides?: Overrides): Promise; + + "setWhiteList(address[])"( + _players: string[], + overrides?: Overrides + ): Promise; + unplay(_player: string, overrides?: Overrides): Promise; "unplay(address)"( @@ -717,6 +789,10 @@ export class Quest extends Contract { overrides?: CallOverrides ): Promise; + isWhiteList(overrides?: CallOverrides): Promise; + + "isWhiteList()"(overrides?: CallOverrides): Promise; + maxPlayers(overrides?: CallOverrides): Promise; "maxPlayers()"(overrides?: CallOverrides): Promise; @@ -758,6 +834,16 @@ export class Quest extends Contract { "rewardToken()"(overrides?: CallOverrides): Promise; + setWhiteList( + _players: string[], + overrides?: Overrides + ): Promise; + + "setWhiteList(address[])"( + _players: string[], + overrides?: Overrides + ): Promise; + unplay( _player: string, overrides?: Overrides diff --git a/packages/hardhat/typechain/QuestFactory.d.ts b/packages/hardhat/typechain/QuestFactory.d.ts index 0427223f..7a676876 100644 --- a/packages/hardhat/typechain/QuestFactory.d.ts +++ b/packages/hardhat/typechain/QuestFactory.d.ts @@ -24,7 +24,7 @@ interface QuestFactoryInterface extends ethers.utils.Interface { functions: { "aragonGovernAddress()": FunctionFragment; "createDeposit()": FunctionFragment; - "createQuest(string,bytes,address,uint256,address,uint32)": FunctionFragment; + "createQuest(string,bytes,address,uint256,address,uint32,bool)": FunctionFragment; "owner()": FunctionFragment; "playDeposit()": FunctionFragment; "renounceOwnership()": FunctionFragment; @@ -44,7 +44,15 @@ interface QuestFactoryInterface extends ethers.utils.Interface { ): string; encodeFunctionData( functionFragment: "createQuest", - values: [string, BytesLike, string, BigNumberish, string, BigNumberish] + values: [ + string, + BytesLike, + string, + BigNumberish, + string, + BigNumberish, + boolean + ] ): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData( @@ -114,7 +122,7 @@ interface QuestFactoryInterface extends ethers.utils.Interface { "CreateDepositChanged(uint256,address,uint256)": EventFragment; "OwnershipTransferred(address,address)": EventFragment; "PlayDepositChanged(uint256,address,uint256)": EventFragment; - "QuestCreated(address,string,bytes,address,uint256,address,address,uint256,address,uint256,address,uint32)": EventFragment; + "QuestCreated(address,string,bytes,address,uint256,address,address,uint256,address,uint256,address,uint32,bool)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "CreateDepositChanged"): EventFragment; @@ -156,16 +164,18 @@ export class QuestFactory extends Contract { _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; - "createQuest(string,bytes,address,uint256,address,uint32)"( + "createQuest(string,bytes,address,uint256,address,uint32,bool)"( _questTitle: string, _questDetailsRef: BytesLike, _rewardToken: string, _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; @@ -249,16 +259,18 @@ export class QuestFactory extends Contract { _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; - "createQuest(string,bytes,address,uint256,address,uint32)"( + "createQuest(string,bytes,address,uint256,address,uint32,bool)"( _questTitle: string, _questDetailsRef: BytesLike, _rewardToken: string, _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; @@ -342,16 +354,18 @@ export class QuestFactory extends Contract { _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: CallOverrides ): Promise; - "createQuest(string,bytes,address,uint256,address,uint32)"( + "createQuest(string,bytes,address,uint256,address,uint32,bool)"( _questTitle: string, _questDetailsRef: BytesLike, _rewardToken: string, _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: CallOverrides ): Promise; @@ -442,7 +456,8 @@ export class QuestFactory extends Contract { playDepositToken: null, playDepositAmount: null, creator: null, - maxPlayers: null + maxPlayers: null, + isWhiteList: null ): EventFilter; }; @@ -462,16 +477,18 @@ export class QuestFactory extends Contract { _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; - "createQuest(string,bytes,address,uint256,address,uint32)"( + "createQuest(string,bytes,address,uint256,address,uint32,bool)"( _questTitle: string, _questDetailsRef: BytesLike, _rewardToken: string, _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; @@ -552,16 +569,18 @@ export class QuestFactory extends Contract { _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; - "createQuest(string,bytes,address,uint256,address,uint32)"( + "createQuest(string,bytes,address,uint256,address,uint32,bool)"( _questTitle: string, _questDetailsRef: BytesLike, _rewardToken: string, _expireTime: BigNumberish, _fundsRecoveryAddress: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise; diff --git a/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts b/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts index bf4e594c..dc62a5ef 100644 --- a/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts +++ b/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts @@ -334,4 +334,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506040516040806111bf8339810180604052604081101561003057600080fd5b81019080805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018190555050506110db806100e46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637e9adccf11610097578063db18af6c11610066578063db18af6c1461051d578063db9bee4614610592578063e00dd161146105dc578063e55156b5146105fa576100f5565b80637e9adccf1461038b5780638da5cb5b146103b9578063bd881e5314610403578063c13517e114610486576100f5565b8063647846a5116100d3578063647846a5146101fc57806369e15404146102465780637b751b9e146102645780637cb57c64146102e8576100f5565b806313af4035146100fa5780631da213f21461013e578063564a565d14610179575b600080fd5b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610648565b005b6101776004803603604081101561015457600080fd5b8101908080359060200190929190803560ff16906020019092919050505061074f565b005b6101a56004803603602081101561018f57600080fd5b81019080803590602001909291905050506109a0565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260048111156101e757fe5b60ff1681526020019250505060405180910390f35b6102046109f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024e610a16565b6040518082815260200191505060405180910390f35b61026c610a1c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b610389600480360360608110156102fe57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561034557600080fd5b82018360208201111561035757600080fd5b8035906020019184600183028401116401000000008311171561037957600080fd5b9091929391929390505050610a52565b005b6103b7600480360360208110156103a157600080fd5b8101908080359060200190929190505050610a58565b005b6103c1610a5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042f6004803603602081101561041957600080fd5b8101908080359060200190929190505050610a81565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600481111561047157fe5b60ff1681526020019250505060405180910390f35b6105076004803603604081101561049c57600080fd5b8101908080359060200190929190803590602001906401000000008111156104c357600080fd5b8201836020820111156104d557600080fd5b803590602001918460018302840111640100000000831117156104f757600080fd5b9091929391929390505050610adc565b6040518082815260200191505060405180910390f35b6105496004803603602081101561053357600080fd5b8101908080359060200190929190505050610c80565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b61059a610e2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e4610e37565b6040518082815260200191505060405180910390f35b6106466004803603604081101561061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3d565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600481111561081f57fe5b81600481111561082b57fe5b1415801561085057506001600481111561084157fe5b81600481111561084d57fe5b14155b6108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4552523a4f5554434f4d455f4e4f545f41535349474e41424c4500000000000081525060200191505060405180910390fd5b6000600460008481526020019081526020016000209050600160048111156108e657fe5b8160000160149054906101000a900460ff16600481111561090357fe5b14610976576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4552523a4e4f545f44495350555445440000000000000000000000000000000081525060200191505060405180910390fd5b818160000160146101000a81548160ff0219169083600481111561099657fe5b0217905550505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000806000306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154925092509250909192565b50505050565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006004600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508060000160149054906101000a900460ff16915050915091565b600080600254905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160016004811115610b1857fe5b8152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690836004811115610b9957fe5b0217905550905050600260008154809291906001019190505550610c0333306001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4b909392919063ffffffff16565b610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4552523a4445504f5349545f4641494c4544000000000000000000000000000081525060200191505060405180910390fd5b809150509392505050565b600080600060046000858152602001908152602001600020905060036004811115610ca757fe5b8160000160149054906101000a900460ff166004811115610cc457fe5b1415610cfb578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660039250925050610e2a565b600480811115610d0757fe5b8160000160149054906101000a900460ff166004811115610d2457fe5b1415610d5b578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660049250925050610e2a565b60026004811115610d6857fe5b8160000160149054906101000a900460ff166004811115610d8557fe5b1415610dbc578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660009250925050610e2a565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f554e45585045435445445f53544154450000000000000000000000000000000081525060200191505060405180910390fd5b915091565b600030905090565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600181905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050611052868261105d565b915050949350505050565b6000806040516020818551602087016000895af160008111156110a3573d600081146110905760208114611099576110a1565b600193506110a1565b600183511493505b505b5050809150509291505056fea165627a7a72305820bd4a295db9bcaba2a85d13d7982dc2f3a1586e33fa938dd46dc0ba2833ca42570029"; + "0x608060405234801561001057600080fd5b506040516040806111bf8339810180604052604081101561003057600080fd5b81019080805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018190555050506110db806100e46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637e9adccf11610097578063db18af6c11610066578063db18af6c1461051d578063db9bee4614610592578063e00dd161146105dc578063e55156b5146105fa576100f5565b80637e9adccf1461038b5780638da5cb5b146103b9578063bd881e5314610403578063c13517e114610486576100f5565b8063647846a5116100d3578063647846a5146101fc57806369e15404146102465780637b751b9e146102645780637cb57c64146102e8576100f5565b806313af4035146100fa5780631da213f21461013e578063564a565d14610179575b600080fd5b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610648565b005b6101776004803603604081101561015457600080fd5b8101908080359060200190929190803560ff16906020019092919050505061074f565b005b6101a56004803603602081101561018f57600080fd5b81019080803590602001909291905050506109a0565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260048111156101e757fe5b60ff1681526020019250505060405180910390f35b6102046109f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024e610a16565b6040518082815260200191505060405180910390f35b61026c610a1c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b610389600480360360608110156102fe57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561034557600080fd5b82018360208201111561035757600080fd5b8035906020019184600183028401116401000000008311171561037957600080fd5b9091929391929390505050610a52565b005b6103b7600480360360208110156103a157600080fd5b8101908080359060200190929190505050610a58565b005b6103c1610a5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042f6004803603602081101561041957600080fd5b8101908080359060200190929190505050610a81565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600481111561047157fe5b60ff1681526020019250505060405180910390f35b6105076004803603604081101561049c57600080fd5b8101908080359060200190929190803590602001906401000000008111156104c357600080fd5b8201836020820111156104d557600080fd5b803590602001918460018302840111640100000000831117156104f757600080fd5b9091929391929390505050610adc565b6040518082815260200191505060405180910390f35b6105496004803603602081101561053357600080fd5b8101908080359060200190929190505050610c80565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b61059a610e2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e4610e37565b6040518082815260200191505060405180910390f35b6106466004803603604081101561061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3d565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600481111561081f57fe5b81600481111561082b57fe5b1415801561085057506001600481111561084157fe5b81600481111561084d57fe5b14155b6108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4552523a4f5554434f4d455f4e4f545f41535349474e41424c4500000000000081525060200191505060405180910390fd5b6000600460008481526020019081526020016000209050600160048111156108e657fe5b8160000160149054906101000a900460ff16600481111561090357fe5b14610976576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4552523a4e4f545f44495350555445440000000000000000000000000000000081525060200191505060405180910390fd5b818160000160146101000a81548160ff0219169083600481111561099657fe5b0217905550505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000806000306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154925092509250909192565b50505050565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006004600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508060000160149054906101000a900460ff16915050915091565b600080600254905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160016004811115610b1857fe5b8152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690836004811115610b9957fe5b0217905550905050600260008154809291906001019190505550610c0333306001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4b909392919063ffffffff16565b610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4552523a4445504f5349545f4641494c4544000000000000000000000000000081525060200191505060405180910390fd5b809150509392505050565b600080600060046000858152602001908152602001600020905060036004811115610ca757fe5b8160000160149054906101000a900460ff166004811115610cc457fe5b1415610cfb578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660039250925050610e2a565b600480811115610d0757fe5b8160000160149054906101000a900460ff166004811115610d2457fe5b1415610d5b578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660049250925050610e2a565b60026004811115610d6857fe5b8160000160149054906101000a900460ff166004811115610d8557fe5b1415610dbc578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660009250925050610e2a565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f554e45585045435445445f53544154450000000000000000000000000000000081525060200191505060405180910390fd5b915091565b600030905090565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600181905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050611052868261105d565b915050949350505050565b6000806040516020818551602087016000895af160008111156110a3573d600081146110905760208114611099576110a1565b600193506110a1565b600183511493505b505b5050809150509291505056fea165627a7a72305820ad706482d862b24b604114b56550301559baa2df856f323030b18cdf6d3b49e00029"; diff --git a/packages/hardhat/typechain/factories/QuestFactory__factory.ts b/packages/hardhat/typechain/factories/QuestFactory__factory.ts index d678bb96..eeb412c0 100644 --- a/packages/hardhat/typechain/factories/QuestFactory__factory.ts +++ b/packages/hardhat/typechain/factories/QuestFactory__factory.ts @@ -246,6 +246,12 @@ const _abi = [ name: "maxPlayers", type: "uint32", }, + { + indexed: false, + internalType: "bool", + name: "isWhiteList", + type: "bool", + }, ], name: "QuestCreated", type: "event", @@ -313,6 +319,11 @@ const _abi = [ name: "_maxPlayers", type: "uint32", }, + { + internalType: "bool", + name: "_isWhiteList", + type: "bool", + }, ], name: "createQuest", outputs: [ @@ -428,4 +439,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b506040516200396b3803806200396b83398101604081905262000034916200028c565b6200004862000042620000a3565b620000a7565b600180546001600160a01b0319166001600160a01b0388161790556200006f8585620000f7565b6200007b838362000177565b6001600160a01b038116331462000097576200009781620001eb565b505050505050620003b7565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200010162000235565b6040805180820182526001600160a01b0384168082526020909101839052600280546001600160a01b03191690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f250920079906200016b9042908590859062000382565b60405180910390a15050565b6200018162000235565b6040805180820182526001600160a01b0384168082526020909101839052600480546001600160a01b03191690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb89906200016b9042908590859062000382565b620001f562000235565b6001600160a01b038116620002275760405162461bcd60e51b81526004016200021e9062000307565b60405180910390fd5b6200023281620000a7565b50565b6200023f620000a3565b6001600160a01b0316620002526200027d565b6001600160a01b0316146200027b5760405162461bcd60e51b81526004016200021e906200034d565b565b6000546001600160a01b031690565b60008060008060008060c08789031215620002a5578182fd5b8651620002b281620003a1565b6020880151909650620002c581620003a1565b604088015160608901519196509450620002df81620003a1565b608088015160a08901519194509250620002f981620003a1565b809150509295509295509295565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b6001600160a01b03811681146200023257600080fd5b6135a480620003c76000396000f3fe60806040523480156200001157600080fd5b5060043610620000cf5760003560e01c8063b0a87ac11162000081578063e87fae211162000063578063e87fae21146200015e578063edeecdd31462000175578063f2fde38b146200018c57620000cf565b8063b0a87ac1146200014a578063d03ffefb146200015457620000cf565b80638c43b41111620000b75780638c43b41114620000f75780638c53c9bd146200010e5780638da5cb5b146200013157620000cf565b8062732e3014620000d4578063715018a614620000ed575b600080fd5b620000eb620000e536600462000c39565b620001a3565b005b620000eb620001f4565b620000eb6200010836600462000c7a565b6200020c565b62000118620002b1565b6040516200012892919062000f50565b60405180910390f35b6200013b620002d3565b60405162000128919062000e2d565b6200013b620002ef565b620001186200030b565b6200013b6200016f36600462000ca8565b6200032d565b620000eb6200018636600462000c7a565b620004be565b620000eb6200019d36600462000c39565b62000557565b620001ad620005c8565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b620001fe620005c8565b6200020a600062000642565b565b62000216620005c8565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb8990620002a590429085908590620011ec565b60405180910390a15050565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60025460035473ffffffffffffffffffffffffffffffffffffffff9091169082565b60015460408051808201825260025473ffffffffffffffffffffffffffffffffffffffff9081168252600354602080840191909152835180850185526004548316815260055491810191909152925160009485948c948c948c948c9491909116928b929133908c90620003a09062000b6e565b620003b59a9998979695949392919062000f8b565b604051809103906000f080158015620003d2573d6000803e3d6000fd5b506040805180820190915260025473ffffffffffffffffffffffffffffffffffffffff168152600354602082015290915062000410903383620006b7565b7f6b2fd076e791d7e0318fa62bf6e275ebe9ff601badea3d9bfdc43c02317d1119818989898989600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260010154600460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460010154338e604051620004ab9c9b9a9998979695949392919062000ea6565b60405180910390a1979650505050505050565b620004c8620005c8565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f25092007990620002a590429085908590620011ec565b62000561620005c8565b73ffffffffffffffffffffffffffffffffffffffff8116620005ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b19062001032565b60405180910390fd5b620005c58162000642565b50565b620005d2620006d4565b73ffffffffffffffffffffffffffffffffffffffff16620005f2620002d3565b73ffffffffffffffffffffffffffffffffffffffff16146200020a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b190620010ec565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620006c38383620006d8565b620006cf838262000807565b505050565b3390565b602082015115620008035781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906200073d908590309060040162000e4e565b60206040518083038186803b1580156200075657600080fd5b505afa1580156200076b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000791919062000d7b565b90508260200151811015620007d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b19062001121565b60208301518351620006cf9173ffffffffffffffffffffffffffffffffffffffff90911690849030906200083f565b5050565b602082015115620008035760208201518251620008039173ffffffffffffffffffffffffffffffffffffffff909116908390620008ec565b620008e6846323b872dd60e01b858585604051602401620008639392919062000e75565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526200090e565b50505050565b620006cf8363a9059cbb60e01b84846040516024016200086392919062000f50565b600062000972826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620009cc9092919063ffffffff16565b805190915015620006cf578080602001905181019062000993919062000c58565b620006cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b1906200118f565b6060620009dd8484600085620009e7565b90505b9392505050565b60608247101562000a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b1906200108f565b62000a318562000af6565b62000a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b19062001158565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405162000a95919062000e0f565b60006040518083038185875af1925050503d806000811462000ad4576040519150601f19603f3d011682016040523d82523d6000602084013e62000ad9565b606091505b509150915062000aeb82828662000b16565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81163b15155b919050565b6060831562000b27575081620009e0565b82511562000b385782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b1919062000f76565b6122d5806200129a83390190565b600067ffffffffffffffff8084111562000b9a5762000b9a62001247565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171562000be35762000be362001247565b8160405280935085815286868601111562000bfd57600080fd5b858560208301376000602087830101525050509392505050565b803562000b118162001276565b803563ffffffff8116811462000b1157600080fd5b60006020828403121562000c4b578081fd5b8135620009e08162001276565b60006020828403121562000c6a578081fd5b81518015158114620009e0578182fd5b6000806040838503121562000c8d578081fd5b823562000c9a8162001276565b946020939093013593505050565b60008060008060008060c0878903121562000cc1578182fd5b863567ffffffffffffffff8082111562000cd9578384fd5b818901915089601f83011262000ced578384fd5b62000cfe8a83356020850162000b7c565b9750602089013591508082111562000d14578384fd5b508701601f8101891362000d26578283fd5b62000d378982356020840162000b7c565b95505062000d486040880162000c17565b93506060870135925062000d5f6080880162000c17565b915062000d6f60a0880162000c24565b90509295509295509295565b60006020828403121562000d8d578081fd5b5051919050565b6000815180845262000dae81602086016020860162001218565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b63ffffffff169052565b6000825162000e2381846020870162001218565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff808f168352610180602084015262000eda61018084018f62000d94565b838103604085015262000eee818f62000d94565b925050808c1660608401528a6080840152808a1660a084015280891660c08401528760e0840152808716610100840152856101208401528085166101408401525062000f3f61016083018462000e05565b9d9c50505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b600060208252620009e0602083018462000d94565b600061018080835262000fa18184018e62000d94565b9050828103602084015262000fb7818d62000d94565b91505073ffffffffffffffffffffffffffffffffffffffff808b166040840152896060840152808916608084015280881660a084015262000ffc60c084018862000de0565b6200100c61010084018762000de0565b8085166101408401525063ffffffff83166101608301529b9a5050505050505050505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b92835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b60005b83811015620012355781810151838201526020016200121b565b83811115620008e65750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114620005c557600080fdfe60806040523480156200001157600080fd5b50604051620022d5380380620022d58339810160408190526200003491620002b7565b8951620000499060019060208d019062000118565b5088516200005f9060029060208c019062000118565b50600380546001600160a01b03199081166001600160a01b039a8b16179091556004979097556005805488169689169690961790955560068054600080548916938a16939093179092558351600880548916918a169190911790556020938401516009558251600a80548916918a169190911790559190920151600b55600c805460ff19169055931693169290921763ffffffff60a01b1916600160a01b63ffffffff90931692909202919091179055506200044e9050565b8280546200012690620003e2565b90600052602060002090601f0160209004810192826200014a576000855562000195565b82601f106200016557805160ff191683800117855562000195565b8280016001018555821562000195579182015b828111156200019557825182559160200191906001019062000178565b50620001a3929150620001a7565b5090565b5b80821115620001a35760008155600101620001a8565b8051620001cb8162000435565b919050565b600082601f830112620001e1578081fd5b81516001600160401b03811115620001fd57620001fd6200041f565b602062000213601f8301601f19168201620003af565b828152858284870101111562000227578384fd5b835b838110156200024657858101830151828201840152820162000229565b838111156200025757848385840101525b5095945050505050565b60006040828403121562000273578081fd5b6200027f6040620003af565b905081516200028e8162000435565b808252506020820151602082015292915050565b805163ffffffff81168114620001cb57600080fd5b6000806000806000806000806000806101808b8d031215620002d7578586fd5b8a516001600160401b0380821115620002ee578788fd5b620002fc8e838f01620001d0565b9b5060208d015191508082111562000312578788fd5b50620003218d828e01620001d0565b9950506200033260408c01620001be565b975060608b015196506200034960808c01620001be565b95506200035960a08c01620001be565b94506200036a8c60c08d0162000261565b93506200037c8c6101008d0162000261565b92506200038d6101408c01620001be565b91506200039e6101608c01620002a2565b90509295989b9194979a5092959850565b604051601f8201601f191681016001600160401b0381118282101715620003da57620003da6200041f565b604052919050565b600281046001821680620003f757607f821691505b602082108114156200041957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200044b57600080fd5b50565b611e77806200045e6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80638c53c9bd116100b2578063d03ffefb11610081578063e492814f11610066578063e492814f14610255578063f294cf3814610268578063f7c618c11461027057610136565b8063d03ffefb14610238578063e0c234231461024057610136565b80638c53c9bd146101e5578063a888c2cd146101fb578063b0a87ac11461021d578063b434151c1461022557610136565b8063579ca2c9116101095780637ceae310116100ee5780637ceae310146101b557806385c99e2b146101bd5780638b5b9ccc146101d057610136565b8063579ca2c9146101985780636c3a4cce146101a057610136565b8063151dfb061461013b578063310a1ee31461015057806348d6cb531461016e5780634c2412a214610183575b600080fd5b61014e610149366004611638565b610278565b005b610158610553565b6040516101659190611cae565b60405180910390f35b610176610559565b60405161016591906118f2565b61018b610562565b6040516101659190611cb7565b61014e610586565b6101a861074f565b60405161016591906117f9565b6101a861076b565b6101766101cb366004611638565b610787565b6101d86107bd565b6040516101659190611898565b6101ed61082c565b604051610165929190611872565b61020e610209366004611763565b61084e565b60405161016593929190611910565b6101a8610927565b61014e61023336600461166e565b610943565b6101ed610cc0565b610248610ce2565b60405161016591906118fd565b61014e610263366004611638565b610d70565b610248610fe1565b6101a8610fee565b3373ffffffffffffffffffffffffffffffffffffffff821614806102b3575060005473ffffffffffffffffffffffffffffffffffffffff1633145b6102f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611c51565b60405180910390fd5b60006102fd8261100a565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610359576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e9906119df565b600d805461036990600190611d05565b815481106103a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610400577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d805480610480577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b549181019190915261051690836110d2565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb6071555541758242604051610547929190611872565b60405180910390a15050565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b6004544210156105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611a73565b600c5460ff16610634576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff9081168252600954602083015261060892166110d2565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061068b9030906004016117f9565b60206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db919061177b565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff9182169116141561072257600d54600b5461071e9161071791611cc8565b829061110b565b9150505b60065460035461074c9173ffffffffffffffffffffffffffffffffffffffff918216911683611131565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60006107928261100a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561082257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116107f7575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b6007818154811061085e57600080fd5b906000526020600020906003020160009150905080600001805461088190611d48565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90611d48565b80156108fa5780601f106108cf576101008083540402835291602001916108fa565b820191906000526020600020905b8154815290600101906020018083116108dd57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610994576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611ae1565b83516109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611b86565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610a239030906004016117f9565b60206040518083038186803b158015610a3b57600080fd5b505afa158015610a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a73919061177b565b90508115610b095760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610abc57600954600090610ab290839061110b565b9450610ac0915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610b0957600d54600b54600091610b0491610afd9190611cc8565b859061110b565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610b7f576000610b3b828561110b565b915050600860010154811015610b7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611982565b505b8215610ba957600354610ba99073ffffffffffffffffffffffffffffffffffffffff168585611131565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610c279284920190611570565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610cb190879087908790611910565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610cef90611d48565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1b90611d48565b8015610d685780601f10610d3d57610100808354040283529160200191610d68565b820191906000526020600020905b815481529060010190602001808311610d4b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff82161480610dab575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610de1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611c51565b60065474010000000000000000000000000000000000000000900463ffffffff161580610e305750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b610e66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611aaa565b6004544210610ea1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e99061194b565b6000610eac8261100a565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610f07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611bbd565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b546020820152610f3f9033306111d7565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105479084904290611872565b60018054610cef90611d48565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156110aa578273ffffffffffffffffffffffffffffffffffffffff16600d8281548110611069577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156110985790506107b8565b806110a281611d9c565b91505061100e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561110757602082015182516111079173ffffffffffffffffffffffffffffffffffffffff909116908390611131565b5050565b600080838311156111215750600090508061112a565b50600190508183035b9250929050565b6111d28363a9059cbb60e01b8484604051602401611150929190611872565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526111eb565b505050565b6111e183836112a1565b6111d283826110d2565b600061124d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113c09092919063ffffffff16565b8051909150156111d2578080602001905181019061126b9190611652565b6111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611bf4565b6020820151156111075781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e90611303908590309060040161181a565b60206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611353919061177b565b90508260200151811015611393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611b18565b602083015183516111d29173ffffffffffffffffffffffffffffffffffffffff90911690849030906113d9565b60606113cf8484600085611400565b90505b9392505050565b6113fa846323b872dd60e01b85858560405160240161115093929190611841565b50505050565b60608247101561143c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611a16565b61144585611501565b61147b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611b4f565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114a491906117dd565b60006040518083038185875af1925050503d80600081146114e1576040519150601f19603f3d011682016040523d82523d6000602084013e6114e6565b606091505b50915091506114f682828661151d565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6060831561152c5750816113d2565b82511561153c5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e991906118fd565b82805461157c90611d48565b90600052602060002090601f01602090048101928261159e57600085556115e4565b82601f106115b757805160ff19168380011785556115e4565b828001600101855582156115e4579182015b828111156115e45782518255916020019190600101906115c9565b506115f09291506115f4565b5090565b5b808211156115f057600081556001016115f5565b803573ffffffffffffffffffffffffffffffffffffffff811681146107b857600080fd5b80356107b881611e33565b600060208284031215611649578081fd5b6113d282611609565b600060208284031215611663578081fd5b81516113d281611e33565b60008060008060808587031215611683578283fd5b843567ffffffffffffffff8082111561169a578485fd5b818701915087601f8301126116ad578485fd5b8135818111156116bf576116bf611e04565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561170557611705611e04565b816040528281528a602084870101111561171d578788fd5b826020860160208301378760208483010152809850505050505061174360208601611609565b9250604085013591506117586060860161162d565b905092959194509250565b600060208284031215611774578081fd5b5035919050565b60006020828403121561178c578081fd5b5051919050565b600081518084526117ab816020860160208601611d1c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516117ef818460208701611d1c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156118e657835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016118b4565b50909695505050505050565b901515815260200190565b6000602082526113d26020830184611793565b6000606082526119236060830186611793565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d0057611d00611dd5565b500290565b600082821015611d1757611d17611dd5565b500390565b60005b83811015611d37578181015183820152602001611d1f565b838111156113fa5750506000910152565b600281046001821680611d5c57607f821691505b60208210811415611d96577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611dce57611dce611dd5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461074c57600080fdfea2646970667358221220001ecc7e3a56a6e8ceba0a2f6f0020ef13bacde460faf1b1cca5699bfd12ab1764736f6c63430008010033a264697066735822122006ddcb5ccdb8532fd391ece411b1311d2d44d237eb8d1044c11f2c762c9eb08564736f6c63430008010033"; + "0x60806040523480156200001157600080fd5b50604051620040373803806200403783398101604081905262000034916200028c565b6200004862000042620000a3565b620000a7565b600180546001600160a01b0319166001600160a01b0388161790556200006f8585620000f7565b6200007b838362000177565b6001600160a01b038116331462000097576200009781620001eb565b505050505050620003b7565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200010162000235565b6040805180820182526001600160a01b0384168082526020909101839052600280546001600160a01b03191690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f250920079906200016b9042908590859062000382565b60405180910390a15050565b6200018162000235565b6040805180820182526001600160a01b0384168082526020909101839052600480546001600160a01b03191690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb89906200016b9042908590859062000382565b620001f562000235565b6001600160a01b038116620002275760405162461bcd60e51b81526004016200021e9062000307565b60405180910390fd5b6200023281620000a7565b50565b6200023f620000a3565b6001600160a01b0316620002526200027d565b6001600160a01b0316146200027b5760405162461bcd60e51b81526004016200021e906200034d565b565b6000546001600160a01b031690565b60008060008060008060c08789031215620002a5578182fd5b8651620002b281620003a1565b6020880151909650620002c581620003a1565b604088015160608901519196509450620002df81620003a1565b608088015160a08901519194509250620002f981620003a1565b809150509295509295509295565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b6001600160a01b03811681146200023257600080fd5b613c7080620003c76000396000f3fe60806040523480156200001157600080fd5b5060043610620000cf5760003560e01c8063b0a87ac11162000081578063d03ffefb1162000063578063d03ffefb146200016b578063edeecdd31462000175578063f2fde38b146200018c57620000cf565b8063b0a87ac1146200014a578063b628a33f146200015457620000cf565b80638c43b41111620000b75780638c43b41114620000f75780638c53c9bd146200010e5780638da5cb5b146200013157620000cf565b8062732e3014620000d4578063715018a614620000ed575b600080fd5b620000eb620000e536600462000c6e565b620001a3565b005b620000eb620001f4565b620000eb6200010836600462000cac565b6200020c565b62000118620002b1565b6040516200012892919062000fee565b60405180910390f35b6200013b620002d3565b60405162000128919062000e7f565b6200013b620002ef565b6200013b6200016536600462000cda565b6200030b565b62000118620004a2565b620000eb6200018636600462000cac565b620004c4565b620000eb6200019d36600462000c6e565b6200055d565b620001ad620005ce565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b620001fe620005ce565b6200020a600062000648565b565b62000216620005ce565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb8990620002a59042908590859062001292565b60405180910390a15050565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460408051808201825260025473ffffffffffffffffffffffffffffffffffffffff9081168252600354602080840191909152835180850185526004548316815260055491810191909152925160009485948d948d948d948d9491909116928c929133908d908d90620003809062000b74565b620003969b9a9998979695949392919062001029565b604051809103906000f080158015620003b3573d6000803e3d6000fd5b506040805180820190915260025473ffffffffffffffffffffffffffffffffffffffff1681526003546020820152909150620003f1903383620006bd565b7f9e202812de1e0ca985481ca3d9e552f82bda863f1dc4c73713de12983b2147b5818a8a8a8a8a600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260010154600460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460010154338f8f6040516200048e9d9c9b9a9998979695949392919062000ef8565b60405180910390a198975050505050505050565b60025460035473ffffffffffffffffffffffffffffffffffffffff9091169082565b620004ce620005ce565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f25092007990620002a59042908590859062001292565b62000567620005ce565b73ffffffffffffffffffffffffffffffffffffffff8116620005c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b790620010d8565b60405180910390fd5b620005cb8162000648565b50565b620005d8620006da565b73ffffffffffffffffffffffffffffffffffffffff16620005f8620002d3565b73ffffffffffffffffffffffffffffffffffffffff16146200020a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b79062001192565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620006c98383620006de565b620006d583826200080d565b505050565b3390565b602082015115620008095781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e9062000743908590309060040162000ea0565b60206040518083038186803b1580156200075c57600080fd5b505afa15801562000771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000797919062000dad565b90508260200151811015620007da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b790620011c7565b60208301518351620006d59173ffffffffffffffffffffffffffffffffffffffff909116908490309062000845565b5050565b602082015115620008095760208201518251620008099173ffffffffffffffffffffffffffffffffffffffff909116908390620008f2565b620008ec846323b872dd60e01b858585604051602401620008699392919062000ec7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000914565b50505050565b620006d58363a9059cbb60e01b84846040516024016200086992919062000fee565b600062000978826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620009d29092919063ffffffff16565b805190915015620006d5578080602001905181019062000999919062000c8d565b620006d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b79062001235565b6060620009e38484600085620009ed565b90505b9392505050565b60608247101562000a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b79062001135565b62000a378562000afc565b62000a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b790620011fe565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405162000a9b919062000e61565b60006040518083038185875af1925050503d806000811462000ada576040519150601f19603f3d011682016040523d82523d6000602084013e62000adf565b606091505b509150915062000af182828662000b1c565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81163b15155b919050565b6060831562000b2d575081620009e6565b82511562000b3e5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b7919062001014565b6128ec806200134f83390190565b600067ffffffffffffffff8084111562000ba05762000ba0620012ed565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171562000be95762000be9620012ed565b8160405280935085815286868601111562000c0357600080fd5b858560208301376000602087830101525050509392505050565b803562000b17816200131c565b803562000b17816200133f565b600082601f83011262000c48578081fd5b620009e68383356020850162000b82565b803563ffffffff8116811462000b1757600080fd5b60006020828403121562000c80578081fd5b8135620009e6816200131c565b60006020828403121562000c9f578081fd5b8151620009e6816200133f565b6000806040838503121562000cbf578081fd5b823562000ccc816200131c565b946020939093013593505050565b600080600080600080600060e0888a03121562000cf5578283fd5b873567ffffffffffffffff8082111562000d0d578485fd5b818a0191508a601f83011262000d21578485fd5b62000d328b83356020850162000b82565b985060208a013591508082111562000d48578485fd5b5062000d578a828b0162000c37565b96505062000d686040890162000c1d565b94506060880135935062000d7f6080890162000c1d565b925062000d8f60a0890162000c59565b915062000d9f60c0890162000c2a565b905092959891949750929550565b60006020828403121562000dbf578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b15159052565b6000815180845262000e00816020860160208601620012be565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b63ffffffff169052565b6000825162000e75818460208701620012be565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8f1682526101a0602083015262000f2b6101a083018f62000de6565b828103604084015262000f3f818f62000de6565b91505073ffffffffffffffffffffffffffffffffffffffff8c1660608301528a608083015273ffffffffffffffffffffffffffffffffffffffff8a1660a083015262000f8f60c083018a62000dc6565b8760e083015262000fa561010083018862000dc6565b8561012083015262000fbc61014083018662000dc6565b62000fcc61016083018562000e57565b62000fdc61018083018462000de0565b9e9d5050505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b600060208252620009e6602083018462000de6565b60006101a08083526200103f8184018f62000de6565b9050828103602084015262001055818e62000de6565b91505073ffffffffffffffffffffffffffffffffffffffff808c1660408401528a6060840152808a16608084015280891660a08401526200109a60c084018962000e32565b620010aa61010084018862000e32565b9490941661014082015263ffffffff9290921661016083015215156101809091015298975050505050505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b92835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b60005b83811015620012db578181015183820152602001620012c1565b83811115620008ec5750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114620005cb57600080fd5b8015158114620005cb57600080fdfe60806040523480156200001157600080fd5b50604051620028ec380380620028ec83398101604081905262000034916200031c565b60008263ffffffff16118015620000485750805b15620000715760405162461bcd60e51b815260040162000068906200042e565b60405180910390fd5b8a51620000869060019060208e01906200016c565b5089516200009c9060029060208d01906200016c565b50600380546001600160a01b03199081166001600160a01b039b8c1617909155600498909855600580548916978a169790971790965560068054600080548a16948b16949094179093558451600880548a16918b169190911790556020948501516009558351600a80548a16918b169190911790559290930151600b55600c805460ff19169055909416919094161763ffffffff60a01b1916600160a01b63ffffffff909416939093029290921760ff60c01b1916600160c01b9215159290920291909117905550620005459050565b8280546200017a90620004d9565b90600052602060002090601f0160209004810192826200019e5760008555620001e9565b82601f10620001b957805160ff1916838001178555620001e9565b82800160010185558215620001e9579182015b82811115620001e9578251825591602001919060010190620001cc565b50620001f7929150620001fb565b5090565b5b80821115620001f75760008155600101620001fc565b80516200021f816200052c565b919050565b805180151581146200021f57600080fd5b600082601f83011262000246578081fd5b81516001600160401b0381111562000262576200026262000516565b602062000278601f8301601f19168201620004a6565b82815285828487010111156200028c578384fd5b835b83811015620002ab5785810183015182820184015282016200028e565b83811115620002bc57848385840101525b5095945050505050565b600060408284031215620002d8578081fd5b620002e46040620004a6565b90508151620002f3816200052c565b808252506020820151602082015292915050565b805163ffffffff811681146200021f57600080fd5b60008060008060008060008060008060006101a08c8e0312156200033e578687fd5b8b516001600160401b0381111562000354578788fd5b620003628e828f0162000235565b60208e0151909c5090506001600160401b0381111562000380578788fd5b6200038e8e828f0162000235565b9a50506200039f60408d0162000212565b985060608c01519750620003b660808d0162000212565b9650620003c660a08d0162000212565b9550620003d78d60c08e01620002c6565b9450620003e98d6101008e01620002c6565b9350620003fa6101408d0162000212565b92506200040b6101608d0162000307565b91506200041c6101808d0162000224565b90509295989b509295989b9093969950565b60208082526052908201527f4552524f523a2043616e27742063726561746520612077686974654c6973746560408201527f642071756573742077697468206d617820706c61796572732067726561746572606082015271207468616e20302028696e66696e6974792960701b608082015260a00190565b604051601f8201601f191681016001600160401b0381118282101715620004d157620004d162000516565b604052919050565b600281046001821680620004ee57607f821691505b602082108114156200051057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200054257600080fd5b50565b61239780620005556000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638b5b9ccc116100cd578063d03ffefb11610081578063e492814f11610066578063e492814f146102a6578063f294cf38146102b9578063f7c618c1146102c15761016c565b8063d03ffefb14610289578063e0c23423146102915761016c565b8063a888c2cd116100b2578063a888c2cd1461024c578063b0a87ac11461026e578063b434151c146102765761016c565b80638b5b9ccc146102215780638c53c9bd146102365761016c565b8063579ca2c911610124578063775b9c1311610109578063775b9c13146101f35780637ceae3101461020657806385c99e2b1461020e5761016c565b8063579ca2c9146101d65780636c3a4cce146101de5761016c565b8063310a1ee311610155578063310a1ee3146101a457806348d6cb53146101b95780634c2412a2146101c15761016c565b8063151dfb06146101715780632f17b18214610186575b600080fd5b61018461017f3660046118d8565b6102c9565b005b61018e6105fd565b60405161019b9190611c4f565b60405180910390f35b6101ac610622565b60405161019b919061217f565b61018e610628565b6101c9610631565b60405161019b9190612188565b610184610655565b6101e661081e565b60405161019b9190611b7b565b6101846102013660046118f2565b61083a565b6101e6610938565b61018e61021c3660046118d8565b610954565b61022961098a565b60405161019b9190611c1a565b61023e6109f9565b60405161019b929190611bf4565b61025f61025a366004611a95565b610a1b565b60405161019b93929190611c6d565b6101e6610af4565b6101846102843660046119bc565b610b10565b61023e610e8d565b610299610eaf565b60405161019b9190611c5a565b6101846102b43660046118d8565b610f3d565b610299611207565b6101e6611214565b6006547801000000000000000000000000000000000000000000000000900460ff161561032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611dd0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610366575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60006103a782611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d99565b600d805461041390600190612225565b8154811061044a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106104aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d80548061052a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b54918101919091526105c090836112f8565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb60715555417582426040516105f1929190611bf4565b60405180910390a15050565b6006547801000000000000000000000000000000000000000000000000900460ff1681565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b600454421015610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e8a565b600c5460ff16610703576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff908116825260095460208301526106d792166112f8565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061075a903090600401611b7b565b60206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190611aad565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff918216911614156107f157600d54600b546107ed916107e6916121e8565b8290611331565b9150505b60065460035461081b9173ffffffffffffffffffffffffffffffffffffffff918216911683611357565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f1e565b6006547801000000000000000000000000000000000000000000000000900460ff1615156001146108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ca8565b80516108fb90600d906020840190611796565b507ff13454c9f44194d5e5e96ac708639b22a3cadb91d2a4ea97870cf94b5dbd5bad814260405161092d929190611c2d565b60405180910390a150565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b600061095f82611230565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156109ef57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109c4575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b60078181548110610a2b57600080fd5b9060005260206000209060030201600091509050806000018054610a4e90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90612268565b8015610ac75780601f10610a9c57610100808354040283529160200191610ac7565b820191906000526020600020905b815481529060010190602001808311610aaa57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fb2565b8351610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612057565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610bf0903090600401611b7b565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611aad565b90508115610cd65760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610c8957600954600090610c7f908390611331565b9450610c8d915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610cd657600d54600b54600091610cd191610cca91906121e8565b8590611331565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610d4c576000610d088285611331565b915050600860010154811015610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d3c565b505b8215610d7657600354610d769073ffffffffffffffffffffffffffffffffffffffff168585611357565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610df49284920190611820565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610e7e90879087908790611c6d565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610ebc90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee890612268565b8015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b505050505081565b6006547801000000000000000000000000000000000000000000000000900460ff1615610f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ec1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610fd1575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60065474010000000000000000000000000000000000000000900463ffffffff1615806110565750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f7b565b60045442106110c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d05565b60006110d282611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461112d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229061208e565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b5460208201526111659033306113fd565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105f19084904290611bf4565b60018054610ebc90612268565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156112d0578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061128f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156112be579050610985565b806112c8816122bc565b915050611234565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561132d576020820151825161132d9173ffffffffffffffffffffffffffffffffffffffff909116908390611357565b5050565b6000808383111561134757506000905080611350565b50600190508183035b9250929050565b6113f88363a9059cbb60e01b8484604051602401611376929190611bf4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611411565b505050565b61140783836114c7565b6113f883826112f8565b6000611473826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166115e69092919063ffffffff16565b8051909150156113f8578080602001905181019061149191906119a0565b6113f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610322906120c5565b60208201511561132d5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906115299085903090600401611b9c565b60206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190611aad565b905082602001518110156115b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fe9565b602083015183516113f89173ffffffffffffffffffffffffffffffffffffffff90911690849030906115ff565b60606115f58484600085611626565b90505b9392505050565b611620846323b872dd60e01b85858560405160240161137693929190611bc3565b50505050565b606082471015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e2d565b61166b85611727565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612020565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116ca9190611b5f565b60006040518083038185875af1925050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b509150915061171c828286611743565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b606083156117525750816115f8565b8251156117625782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229190611c5a565b828054828255906000526020600020908101928215611810579160200282015b8281111561181057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906117b6565b5061181c929150611894565b5090565b82805461182c90612268565b90600052602060002090601f01602090048101928261184e5760008555611810565b82601f1061186757805160ff1916838001178555611810565b82800160010185558215611810579182015b82811115611810578251825591602001919060010190611879565b5b8082111561181c5760008155600101611895565b803573ffffffffffffffffffffffffffffffffffffffff8116811461098557600080fd5b803561098581612353565b6000602082840312156118e9578081fd5b6115f8826118a9565b60006020808385031215611904578182fd5b823567ffffffffffffffff8082111561191b578384fd5b818501915085601f83011261192e578384fd5b81358181111561194057611940612324565b8381029150611950848301612199565b8181528481019084860184860187018a101561196a578788fd5b8795505b838610156119935761197f816118a9565b83526001959095019491860191860161196e565b5098975050505050505050565b6000602082840312156119b1578081fd5b81516115f881612353565b600080600080608085870312156119d1578283fd5b843567ffffffffffffffff808211156119e8578485fd5b818701915087601f8301126119fb578485fd5b8135602082821115611a0f57611a0f612324565b611a3f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612199565b92508183528981838601011115611a54578687fd5b818185018285013786818385010152829750611a71818a016118a9565b96505050505060408501359150611a8a606086016118cd565b905092959194509250565b600060208284031215611aa6578081fd5b5035919050565b600060208284031215611abe578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611b0a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611ad8565b509495945050505050565b60008151808452611b2d81602086016020860161223c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251611b7181846020870161223c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082526115f86020830184611ac5565b600060408252611c406040830185611ac5565b90508260208301529392505050565b901515815260200190565b6000602082526115f86020830184611b15565b600060608252611c806060830186611b15565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b6020808252603d908201527f4552524f523a2043616e27742073657420746865207768697465206c6973742060408201527f746f2061206e6f6e2d77686974656c697374656420636f6e7472616374000000606082015260800190565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526027908201527f4552524f523a2063616e277420756e706c617920612077686974656c6973746560408201527f6420717565737400000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b60208082526037908201527f4552524f523a2043616e27742073656c6620726567697374657220616e64207060408201527f6c617920612077686974656c6973746564205175657374000000000000000000606082015260800190565b60208082526023908201527f4f6e6c792063726561746f722063616e2063616c6c20746869732066756e637460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121e0576121e0612324565b604052919050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612220576122206122f5565b500290565b600082821015612237576122376122f5565b500390565b60005b8381101561225757818101518382015260200161223f565b838111156116205750506000910152565b60028104600182168061227c57607f821691505b602082108114156122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ee576122ee6122f5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461081b57600080fdfea2646970667358221220c5b6392a692b81a7395464b5a6d89cbbf464e1fc06f690c87eb711d649b3214364736f6c63430008010033a26469706673582212201d63ac4ea23a0edaa311d7dd3d5cb84fdf845fe1013263d851bc5f1429bfa78564736f6c63430008010033"; diff --git a/packages/hardhat/typechain/factories/Quest__factory.ts b/packages/hardhat/typechain/factories/Quest__factory.ts index cc62bee4..f1d50901 100644 --- a/packages/hardhat/typechain/factories/Quest__factory.ts +++ b/packages/hardhat/typechain/factories/Quest__factory.ts @@ -24,6 +24,7 @@ export class Quest__factory extends ContractFactory { _playDeposit: { token: string; amount: BigNumberish }, _questCreator: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): Promise { return super.deploy( @@ -37,6 +38,7 @@ export class Quest__factory extends ContractFactory { _playDeposit, _questCreator, _maxPlayers, + _isWhiteList, overrides || {} ) as Promise; } @@ -51,6 +53,7 @@ export class Quest__factory extends ContractFactory { _playDeposit: { token: string; amount: BigNumberish }, _questCreator: string, _maxPlayers: BigNumberish, + _isWhiteList: boolean, overrides?: Overrides ): TransactionRequest { return super.getDeployTransaction( @@ -64,6 +67,7 @@ export class Quest__factory extends ContractFactory { _playDeposit, _questCreator, _maxPlayers, + _isWhiteList, overrides || {} ); } @@ -155,6 +159,11 @@ const _abi = [ name: "_maxPlayers", type: "uint32", }, + { + internalType: "bool", + name: "_isWhiteList", + type: "bool", + }, ], stateMutability: "nonpayable", type: "constructor", @@ -222,6 +231,25 @@ const _abi = [ name: "QuestUnplayed", type: "event", }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address[]", + name: "whiteListPlayers", + type: "address[]", + }, + { + indexed: false, + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + name: "WhiteListChanged", + type: "event", + }, { inputs: [], name: "aragonGovernAddress", @@ -381,6 +409,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "isWhiteList", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "maxPlayers", @@ -484,6 +525,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "address[]", + name: "_players", + type: "address[]", + }, + ], + name: "setWhiteList", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, { inputs: [ { @@ -500,4 +554,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b50604051620022d5380380620022d58339810160408190526200003491620002b7565b8951620000499060019060208d019062000118565b5088516200005f9060029060208c019062000118565b50600380546001600160a01b03199081166001600160a01b039a8b16179091556004979097556005805488169689169690961790955560068054600080548916938a16939093179092558351600880548916918a169190911790556020938401516009558251600a80548916918a169190911790559190920151600b55600c805460ff19169055931693169290921763ffffffff60a01b1916600160a01b63ffffffff90931692909202919091179055506200044e9050565b8280546200012690620003e2565b90600052602060002090601f0160209004810192826200014a576000855562000195565b82601f106200016557805160ff191683800117855562000195565b8280016001018555821562000195579182015b828111156200019557825182559160200191906001019062000178565b50620001a3929150620001a7565b5090565b5b80821115620001a35760008155600101620001a8565b8051620001cb8162000435565b919050565b600082601f830112620001e1578081fd5b81516001600160401b03811115620001fd57620001fd6200041f565b602062000213601f8301601f19168201620003af565b828152858284870101111562000227578384fd5b835b838110156200024657858101830151828201840152820162000229565b838111156200025757848385840101525b5095945050505050565b60006040828403121562000273578081fd5b6200027f6040620003af565b905081516200028e8162000435565b808252506020820151602082015292915050565b805163ffffffff81168114620001cb57600080fd5b6000806000806000806000806000806101808b8d031215620002d7578586fd5b8a516001600160401b0380821115620002ee578788fd5b620002fc8e838f01620001d0565b9b5060208d015191508082111562000312578788fd5b50620003218d828e01620001d0565b9950506200033260408c01620001be565b975060608b015196506200034960808c01620001be565b95506200035960a08c01620001be565b94506200036a8c60c08d0162000261565b93506200037c8c6101008d0162000261565b92506200038d6101408c01620001be565b91506200039e6101608c01620002a2565b90509295989b9194979a5092959850565b604051601f8201601f191681016001600160401b0381118282101715620003da57620003da6200041f565b604052919050565b600281046001821680620003f757607f821691505b602082108114156200041957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200044b57600080fd5b50565b611e77806200045e6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80638c53c9bd116100b2578063d03ffefb11610081578063e492814f11610066578063e492814f14610255578063f294cf3814610268578063f7c618c11461027057610136565b8063d03ffefb14610238578063e0c234231461024057610136565b80638c53c9bd146101e5578063a888c2cd146101fb578063b0a87ac11461021d578063b434151c1461022557610136565b8063579ca2c9116101095780637ceae310116100ee5780637ceae310146101b557806385c99e2b146101bd5780638b5b9ccc146101d057610136565b8063579ca2c9146101985780636c3a4cce146101a057610136565b8063151dfb061461013b578063310a1ee31461015057806348d6cb531461016e5780634c2412a214610183575b600080fd5b61014e610149366004611638565b610278565b005b610158610553565b6040516101659190611cae565b60405180910390f35b610176610559565b60405161016591906118f2565b61018b610562565b6040516101659190611cb7565b61014e610586565b6101a861074f565b60405161016591906117f9565b6101a861076b565b6101766101cb366004611638565b610787565b6101d86107bd565b6040516101659190611898565b6101ed61082c565b604051610165929190611872565b61020e610209366004611763565b61084e565b60405161016593929190611910565b6101a8610927565b61014e61023336600461166e565b610943565b6101ed610cc0565b610248610ce2565b60405161016591906118fd565b61014e610263366004611638565b610d70565b610248610fe1565b6101a8610fee565b3373ffffffffffffffffffffffffffffffffffffffff821614806102b3575060005473ffffffffffffffffffffffffffffffffffffffff1633145b6102f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611c51565b60405180910390fd5b60006102fd8261100a565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610359576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e9906119df565b600d805461036990600190611d05565b815481106103a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610400577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d805480610480577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b549181019190915261051690836110d2565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb6071555541758242604051610547929190611872565b60405180910390a15050565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b6004544210156105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611a73565b600c5460ff16610634576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff9081168252600954602083015261060892166110d2565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061068b9030906004016117f9565b60206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db919061177b565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff9182169116141561072257600d54600b5461071e9161071791611cc8565b829061110b565b9150505b60065460035461074c9173ffffffffffffffffffffffffffffffffffffffff918216911683611131565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60006107928261100a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561082257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116107f7575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b6007818154811061085e57600080fd5b906000526020600020906003020160009150905080600001805461088190611d48565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90611d48565b80156108fa5780601f106108cf576101008083540402835291602001916108fa565b820191906000526020600020905b8154815290600101906020018083116108dd57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610994576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611ae1565b83516109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611b86565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610a239030906004016117f9565b60206040518083038186803b158015610a3b57600080fd5b505afa158015610a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a73919061177b565b90508115610b095760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610abc57600954600090610ab290839061110b565b9450610ac0915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610b0957600d54600b54600091610b0491610afd9190611cc8565b859061110b565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610b7f576000610b3b828561110b565b915050600860010154811015610b7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611982565b505b8215610ba957600354610ba99073ffffffffffffffffffffffffffffffffffffffff168585611131565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610c279284920190611570565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610cb190879087908790611910565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610cef90611d48565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1b90611d48565b8015610d685780601f10610d3d57610100808354040283529160200191610d68565b820191906000526020600020905b815481529060010190602001808311610d4b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff82161480610dab575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610de1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611c51565b60065474010000000000000000000000000000000000000000900463ffffffff161580610e305750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b610e66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611aaa565b6004544210610ea1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e99061194b565b6000610eac8261100a565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610f07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611bbd565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b546020820152610f3f9033306111d7565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105479084904290611872565b60018054610cef90611d48565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156110aa578273ffffffffffffffffffffffffffffffffffffffff16600d8281548110611069577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156110985790506107b8565b806110a281611d9c565b91505061100e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561110757602082015182516111079173ffffffffffffffffffffffffffffffffffffffff909116908390611131565b5050565b600080838311156111215750600090508061112a565b50600190508183035b9250929050565b6111d28363a9059cbb60e01b8484604051602401611150929190611872565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526111eb565b505050565b6111e183836112a1565b6111d283826110d2565b600061124d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113c09092919063ffffffff16565b8051909150156111d2578080602001905181019061126b9190611652565b6111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611bf4565b6020820151156111075781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e90611303908590309060040161181a565b60206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611353919061177b565b90508260200151811015611393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611b18565b602083015183516111d29173ffffffffffffffffffffffffffffffffffffffff90911690849030906113d9565b60606113cf8484600085611400565b90505b9392505050565b6113fa846323b872dd60e01b85858560405160240161115093929190611841565b50505050565b60608247101561143c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611a16565b61144585611501565b61147b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990611b4f565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114a491906117dd565b60006040518083038185875af1925050503d80600081146114e1576040519150601f19603f3d011682016040523d82523d6000602084013e6114e6565b606091505b50915091506114f682828661151d565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6060831561152c5750816113d2565b82511561153c5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e991906118fd565b82805461157c90611d48565b90600052602060002090601f01602090048101928261159e57600085556115e4565b82601f106115b757805160ff19168380011785556115e4565b828001600101855582156115e4579182015b828111156115e45782518255916020019190600101906115c9565b506115f09291506115f4565b5090565b5b808211156115f057600081556001016115f5565b803573ffffffffffffffffffffffffffffffffffffffff811681146107b857600080fd5b80356107b881611e33565b600060208284031215611649578081fd5b6113d282611609565b600060208284031215611663578081fd5b81516113d281611e33565b60008060008060808587031215611683578283fd5b843567ffffffffffffffff8082111561169a578485fd5b818701915087601f8301126116ad578485fd5b8135818111156116bf576116bf611e04565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561170557611705611e04565b816040528281528a602084870101111561171d578788fd5b826020860160208301378760208483010152809850505050505061174360208601611609565b9250604085013591506117586060860161162d565b905092959194509250565b600060208284031215611774578081fd5b5035919050565b60006020828403121561178c578081fd5b5051919050565b600081518084526117ab816020860160208601611d1c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516117ef818460208701611d1c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156118e657835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016118b4565b50909695505050505050565b901515815260200190565b6000602082526113d26020830184611793565b6000606082526119236060830186611793565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d0057611d00611dd5565b500290565b600082821015611d1757611d17611dd5565b500390565b60005b83811015611d37578181015183820152602001611d1f565b838111156113fa5750506000910152565b600281046001821680611d5c57607f821691505b60208210811415611d96577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611dce57611dce611dd5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461074c57600080fdfea2646970667358221220001ecc7e3a56a6e8ceba0a2f6f0020ef13bacde460faf1b1cca5699bfd12ab1764736f6c63430008010033"; + "0x60806040523480156200001157600080fd5b50604051620028ec380380620028ec83398101604081905262000034916200031c565b60008263ffffffff16118015620000485750805b15620000715760405162461bcd60e51b815260040162000068906200042e565b60405180910390fd5b8a51620000869060019060208e01906200016c565b5089516200009c9060029060208d01906200016c565b50600380546001600160a01b03199081166001600160a01b039b8c1617909155600498909855600580548916978a169790971790965560068054600080548a16948b16949094179093558451600880548a16918b169190911790556020948501516009558351600a80548a16918b169190911790559290930151600b55600c805460ff19169055909416919094161763ffffffff60a01b1916600160a01b63ffffffff909416939093029290921760ff60c01b1916600160c01b9215159290920291909117905550620005459050565b8280546200017a90620004d9565b90600052602060002090601f0160209004810192826200019e5760008555620001e9565b82601f10620001b957805160ff1916838001178555620001e9565b82800160010185558215620001e9579182015b82811115620001e9578251825591602001919060010190620001cc565b50620001f7929150620001fb565b5090565b5b80821115620001f75760008155600101620001fc565b80516200021f816200052c565b919050565b805180151581146200021f57600080fd5b600082601f83011262000246578081fd5b81516001600160401b0381111562000262576200026262000516565b602062000278601f8301601f19168201620004a6565b82815285828487010111156200028c578384fd5b835b83811015620002ab5785810183015182820184015282016200028e565b83811115620002bc57848385840101525b5095945050505050565b600060408284031215620002d8578081fd5b620002e46040620004a6565b90508151620002f3816200052c565b808252506020820151602082015292915050565b805163ffffffff811681146200021f57600080fd5b60008060008060008060008060008060006101a08c8e0312156200033e578687fd5b8b516001600160401b0381111562000354578788fd5b620003628e828f0162000235565b60208e0151909c5090506001600160401b0381111562000380578788fd5b6200038e8e828f0162000235565b9a50506200039f60408d0162000212565b985060608c01519750620003b660808d0162000212565b9650620003c660a08d0162000212565b9550620003d78d60c08e01620002c6565b9450620003e98d6101008e01620002c6565b9350620003fa6101408d0162000212565b92506200040b6101608d0162000307565b91506200041c6101808d0162000224565b90509295989b509295989b9093969950565b60208082526052908201527f4552524f523a2043616e27742063726561746520612077686974654c6973746560408201527f642071756573742077697468206d617820706c61796572732067726561746572606082015271207468616e20302028696e66696e6974792960701b608082015260a00190565b604051601f8201601f191681016001600160401b0381118282101715620004d157620004d162000516565b604052919050565b600281046001821680620004ee57607f821691505b602082108114156200051057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200054257600080fd5b50565b61239780620005556000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638b5b9ccc116100cd578063d03ffefb11610081578063e492814f11610066578063e492814f146102a6578063f294cf38146102b9578063f7c618c1146102c15761016c565b8063d03ffefb14610289578063e0c23423146102915761016c565b8063a888c2cd116100b2578063a888c2cd1461024c578063b0a87ac11461026e578063b434151c146102765761016c565b80638b5b9ccc146102215780638c53c9bd146102365761016c565b8063579ca2c911610124578063775b9c1311610109578063775b9c13146101f35780637ceae3101461020657806385c99e2b1461020e5761016c565b8063579ca2c9146101d65780636c3a4cce146101de5761016c565b8063310a1ee311610155578063310a1ee3146101a457806348d6cb53146101b95780634c2412a2146101c15761016c565b8063151dfb06146101715780632f17b18214610186575b600080fd5b61018461017f3660046118d8565b6102c9565b005b61018e6105fd565b60405161019b9190611c4f565b60405180910390f35b6101ac610622565b60405161019b919061217f565b61018e610628565b6101c9610631565b60405161019b9190612188565b610184610655565b6101e661081e565b60405161019b9190611b7b565b6101846102013660046118f2565b61083a565b6101e6610938565b61018e61021c3660046118d8565b610954565b61022961098a565b60405161019b9190611c1a565b61023e6109f9565b60405161019b929190611bf4565b61025f61025a366004611a95565b610a1b565b60405161019b93929190611c6d565b6101e6610af4565b6101846102843660046119bc565b610b10565b61023e610e8d565b610299610eaf565b60405161019b9190611c5a565b6101846102b43660046118d8565b610f3d565b610299611207565b6101e6611214565b6006547801000000000000000000000000000000000000000000000000900460ff161561032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611dd0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610366575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60006103a782611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d99565b600d805461041390600190612225565b8154811061044a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106104aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d80548061052a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b54918101919091526105c090836112f8565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb60715555417582426040516105f1929190611bf4565b60405180910390a15050565b6006547801000000000000000000000000000000000000000000000000900460ff1681565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b600454421015610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e8a565b600c5460ff16610703576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff908116825260095460208301526106d792166112f8565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061075a903090600401611b7b565b60206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190611aad565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff918216911614156107f157600d54600b546107ed916107e6916121e8565b8290611331565b9150505b60065460035461081b9173ffffffffffffffffffffffffffffffffffffffff918216911683611357565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f1e565b6006547801000000000000000000000000000000000000000000000000900460ff1615156001146108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ca8565b80516108fb90600d906020840190611796565b507ff13454c9f44194d5e5e96ac708639b22a3cadb91d2a4ea97870cf94b5dbd5bad814260405161092d929190611c2d565b60405180910390a150565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b600061095f82611230565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156109ef57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109c4575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b60078181548110610a2b57600080fd5b9060005260206000209060030201600091509050806000018054610a4e90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90612268565b8015610ac75780601f10610a9c57610100808354040283529160200191610ac7565b820191906000526020600020905b815481529060010190602001808311610aaa57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fb2565b8351610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612057565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610bf0903090600401611b7b565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611aad565b90508115610cd65760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610c8957600954600090610c7f908390611331565b9450610c8d915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610cd657600d54600b54600091610cd191610cca91906121e8565b8590611331565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610d4c576000610d088285611331565b915050600860010154811015610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d3c565b505b8215610d7657600354610d769073ffffffffffffffffffffffffffffffffffffffff168585611357565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610df49284920190611820565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610e7e90879087908790611c6d565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610ebc90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee890612268565b8015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b505050505081565b6006547801000000000000000000000000000000000000000000000000900460ff1615610f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ec1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610fd1575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60065474010000000000000000000000000000000000000000900463ffffffff1615806110565750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f7b565b60045442106110c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d05565b60006110d282611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461112d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229061208e565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b5460208201526111659033306113fd565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105f19084904290611bf4565b60018054610ebc90612268565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156112d0578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061128f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156112be579050610985565b806112c8816122bc565b915050611234565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561132d576020820151825161132d9173ffffffffffffffffffffffffffffffffffffffff909116908390611357565b5050565b6000808383111561134757506000905080611350565b50600190508183035b9250929050565b6113f88363a9059cbb60e01b8484604051602401611376929190611bf4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611411565b505050565b61140783836114c7565b6113f883826112f8565b6000611473826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166115e69092919063ffffffff16565b8051909150156113f8578080602001905181019061149191906119a0565b6113f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610322906120c5565b60208201511561132d5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906115299085903090600401611b9c565b60206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190611aad565b905082602001518110156115b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fe9565b602083015183516113f89173ffffffffffffffffffffffffffffffffffffffff90911690849030906115ff565b60606115f58484600085611626565b90505b9392505050565b611620846323b872dd60e01b85858560405160240161137693929190611bc3565b50505050565b606082471015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e2d565b61166b85611727565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612020565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116ca9190611b5f565b60006040518083038185875af1925050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b509150915061171c828286611743565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b606083156117525750816115f8565b8251156117625782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229190611c5a565b828054828255906000526020600020908101928215611810579160200282015b8281111561181057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906117b6565b5061181c929150611894565b5090565b82805461182c90612268565b90600052602060002090601f01602090048101928261184e5760008555611810565b82601f1061186757805160ff1916838001178555611810565b82800160010185558215611810579182015b82811115611810578251825591602001919060010190611879565b5b8082111561181c5760008155600101611895565b803573ffffffffffffffffffffffffffffffffffffffff8116811461098557600080fd5b803561098581612353565b6000602082840312156118e9578081fd5b6115f8826118a9565b60006020808385031215611904578182fd5b823567ffffffffffffffff8082111561191b578384fd5b818501915085601f83011261192e578384fd5b81358181111561194057611940612324565b8381029150611950848301612199565b8181528481019084860184860187018a101561196a578788fd5b8795505b838610156119935761197f816118a9565b83526001959095019491860191860161196e565b5098975050505050505050565b6000602082840312156119b1578081fd5b81516115f881612353565b600080600080608085870312156119d1578283fd5b843567ffffffffffffffff808211156119e8578485fd5b818701915087601f8301126119fb578485fd5b8135602082821115611a0f57611a0f612324565b611a3f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612199565b92508183528981838601011115611a54578687fd5b818185018285013786818385010152829750611a71818a016118a9565b96505050505060408501359150611a8a606086016118cd565b905092959194509250565b600060208284031215611aa6578081fd5b5035919050565b600060208284031215611abe578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611b0a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611ad8565b509495945050505050565b60008151808452611b2d81602086016020860161223c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251611b7181846020870161223c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082526115f86020830184611ac5565b600060408252611c406040830185611ac5565b90508260208301529392505050565b901515815260200190565b6000602082526115f86020830184611b15565b600060608252611c806060830186611b15565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b6020808252603d908201527f4552524f523a2043616e27742073657420746865207768697465206c6973742060408201527f746f2061206e6f6e2d77686974656c697374656420636f6e7472616374000000606082015260800190565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526027908201527f4552524f523a2063616e277420756e706c617920612077686974656c6973746560408201527f6420717565737400000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b60208082526037908201527f4552524f523a2043616e27742073656c6620726567697374657220616e64207060408201527f6c617920612077686974656c6973746564205175657374000000000000000000606082015260800190565b60208082526023908201527f4f6e6c792063726561746f722063616e2063616c6c20746869732066756e637460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121e0576121e0612324565b604052919050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612220576122206122f5565b500290565b600082821015612237576122376122f5565b500390565b60005b8381101561225757818101518382015260200161223f565b838111156116205750506000910152565b60028104600182168061227c57607f821691505b602082108114156122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ee576122ee6122f5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461081b57600080fdfea2646970667358221220c5b6392a692b81a7395464b5a6d89cbbf464e1fc06f690c87eb711d649b3214364736f6c63430008010033"; diff --git a/packages/hardhat/typechain/factories/TokenMock__factory.ts b/packages/hardhat/typechain/factories/TokenMock__factory.ts index a55b1b89..9cab3351 100644 --- a/packages/hardhat/typechain/factories/TokenMock__factory.ts +++ b/packages/hardhat/typechain/factories/TokenMock__factory.ts @@ -353,4 +353,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405260405162000fa038038062000fa08339810160408190526200002691620001b9565b8151829082906200003f90600390602085019062000060565b5080516200005590600490602084019062000060565b505050505062000273565b8280546200006e9062000220565b90600052602060002090601f016020900481019282620000925760008555620000dd565b82601f10620000ad57805160ff1916838001178555620000dd565b82800160010185558215620000dd579182015b82811115620000dd578251825591602001919060010190620000c0565b50620000eb929150620000ef565b5090565b5b80821115620000eb5760008155600101620000f0565b600082601f83011262000117578081fd5b81516001600160401b03808211156200013457620001346200025d565b604051601f8301601f19908116603f011681019082821181831017156200015f576200015f6200025d565b816040528381526020925086838588010111156200017b578485fd5b8491505b838210156200019e57858201830151818301840152908201906200017f565b83821115620001af57848385830101525b9695505050505050565b60008060408385031215620001cc578182fd5b82516001600160401b0380821115620001e3578384fd5b620001f18683870162000106565b9350602085015191508082111562000207578283fd5b50620002168582860162000106565b9150509250929050565b6002810460018216806200023557607f821691505b602082108114156200025757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610d1d80620002836000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d714610197578063a9059cbb146101aa578063dd62ed3e146101bd576100d4565b806340c10f191461016757806370a082311461017c57806395d89b411461018f576100d4565b806323b872dd116100b257806323b872dd1461012c578063313ce5671461013f5780633950935114610154576100d4565b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e16101d0565b6040516100ee9190610932565b60405180910390f35b61010a6101053660046108fe565b610262565b6040516100ee9190610927565b61011f610284565b6040516100ee9190610c3f565b61010a61013a3660046108c3565b61028a565b6101476102b8565b6040516100ee9190610c48565b61010a6101623660046108fe565b6102bd565b61017a6101753660046108fe565b6102e9565b005b61011f61018a366004610870565b6102f7565b6100e1610323565b61010a6101a53660046108fe565b610332565b61010a6101b83660046108fe565b61039d565b61011f6101cb366004610891565b6103b5565b6060600380546101df90610c93565b80601f016020809104026020016040519081016040528092919081815260200182805461020b90610c93565b80156102585780601f1061022d57610100808354040283529160200191610258565b820191906000526020600020905b81548152906001019060200180831161023b57829003601f168201915b5050505050905090565b60008061026d6103ed565b905061027a8185856103f1565b5060019392505050565b60025490565b6000806102956103ed565b90506102a2858285610500565b6102ad858585610582565b506001949350505050565b601290565b6000806102c86103ed565b905061027a8185856102da85896103b5565b6102e49190610c56565b6103f1565b6102f38282610742565b5050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b6060600480546101df90610c93565b60008061033d6103ed565b9050600061034b82866103b5565b905083811015610390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610bab565b60405180910390fd5b6102ad82868684036103f1565b6000806103a86103ed565b905061027a818585610582565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff831661043e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610b4e565b73ffffffffffffffffffffffffffffffffffffffff821661048b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610a00565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104f3908590610c3f565b60405180910390a3505050565b600061050c84846103b5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461057c578181101561056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610a5d565b61057c84848484036103f1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610af1565b73ffffffffffffffffffffffffffffffffffffffff821661061c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610387906109a3565b610627838383610847565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610a94565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082208585039055918516815290812080548492906106cb908490610c56565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161072f9190610c3f565b60405180910390a361057c848484610847565b73ffffffffffffffffffffffffffffffffffffffff821661078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610c08565b61079b60008383610847565b80600260008282546107ad9190610c56565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040812080548392906107e7908490610c56565b909155505060405173ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610837908590610c3f565b60405180910390a36102f3600083835b505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461031e57600080fd5b600060208284031215610881578081fd5b61088a8261084c565b9392505050565b600080604083850312156108a3578081fd5b6108ac8361084c565b91506108ba6020840161084c565b90509250929050565b6000806000606084860312156108d7578081fd5b6108e08461084c565b92506108ee6020850161084c565b9150604084013590509250925092565b60008060408385031215610910578182fd5b6109198361084c565b946020939093013593505050565b901515815260200190565b6000602080835283518082850152825b8181101561095e57858101830151858201604001528201610942565b8181111561096f5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260408201527f616c616e63650000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760408201527f207a65726f000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610c8e577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b500190565b600281046001821680610ca757607f821691505b60208210811415610ce1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220a4b54a7a2f37c82415ec22d08b2dc27e1757a12d2bc3dd51bf2ca56dc3ca377a64736f6c63430008010033"; + "0x608060405260405162000fa038038062000fa08339810160408190526200002691620001b9565b8151829082906200003f90600390602085019062000060565b5080516200005590600490602084019062000060565b505050505062000273565b8280546200006e9062000220565b90600052602060002090601f016020900481019282620000925760008555620000dd565b82601f10620000ad57805160ff1916838001178555620000dd565b82800160010185558215620000dd579182015b82811115620000dd578251825591602001919060010190620000c0565b50620000eb929150620000ef565b5090565b5b80821115620000eb5760008155600101620000f0565b600082601f83011262000117578081fd5b81516001600160401b03808211156200013457620001346200025d565b604051601f8301601f19908116603f011681019082821181831017156200015f576200015f6200025d565b816040528381526020925086838588010111156200017b578485fd5b8491505b838210156200019e57858201830151818301840152908201906200017f565b83821115620001af57848385830101525b9695505050505050565b60008060408385031215620001cc578182fd5b82516001600160401b0380821115620001e3578384fd5b620001f18683870162000106565b9350602085015191508082111562000207578283fd5b50620002168582860162000106565b9150509250929050565b6002810460018216806200023557607f821691505b602082108114156200025757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610d1d80620002836000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d714610197578063a9059cbb146101aa578063dd62ed3e146101bd576100d4565b806340c10f191461016757806370a082311461017c57806395d89b411461018f576100d4565b806323b872dd116100b257806323b872dd1461012c578063313ce5671461013f5780633950935114610154576100d4565b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e16101d0565b6040516100ee9190610932565b60405180910390f35b61010a6101053660046108fe565b610262565b6040516100ee9190610927565b61011f610284565b6040516100ee9190610c3f565b61010a61013a3660046108c3565b61028a565b6101476102b8565b6040516100ee9190610c48565b61010a6101623660046108fe565b6102bd565b61017a6101753660046108fe565b6102e9565b005b61011f61018a366004610870565b6102f7565b6100e1610323565b61010a6101a53660046108fe565b610332565b61010a6101b83660046108fe565b61039d565b61011f6101cb366004610891565b6103b5565b6060600380546101df90610c93565b80601f016020809104026020016040519081016040528092919081815260200182805461020b90610c93565b80156102585780601f1061022d57610100808354040283529160200191610258565b820191906000526020600020905b81548152906001019060200180831161023b57829003601f168201915b5050505050905090565b60008061026d6103ed565b905061027a8185856103f1565b5060019392505050565b60025490565b6000806102956103ed565b90506102a2858285610500565b6102ad858585610582565b506001949350505050565b601290565b6000806102c86103ed565b905061027a8185856102da85896103b5565b6102e49190610c56565b6103f1565b6102f38282610742565b5050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b6060600480546101df90610c93565b60008061033d6103ed565b9050600061034b82866103b5565b905083811015610390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610bab565b60405180910390fd5b6102ad82868684036103f1565b6000806103a86103ed565b905061027a818585610582565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff831661043e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610b4e565b73ffffffffffffffffffffffffffffffffffffffff821661048b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610a00565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104f3908590610c3f565b60405180910390a3505050565b600061050c84846103b5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461057c578181101561056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610a5d565b61057c84848484036103f1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610af1565b73ffffffffffffffffffffffffffffffffffffffff821661061c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610387906109a3565b610627838383610847565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610a94565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082208585039055918516815290812080548492906106cb908490610c56565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161072f9190610c3f565b60405180910390a361057c848484610847565b73ffffffffffffffffffffffffffffffffffffffff821661078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610c08565b61079b60008383610847565b80600260008282546107ad9190610c56565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040812080548392906107e7908490610c56565b909155505060405173ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610837908590610c3f565b60405180910390a36102f3600083835b505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461031e57600080fd5b600060208284031215610881578081fd5b61088a8261084c565b9392505050565b600080604083850312156108a3578081fd5b6108ac8361084c565b91506108ba6020840161084c565b90509250929050565b6000806000606084860312156108d7578081fd5b6108e08461084c565b92506108ee6020850161084c565b9150604084013590509250925092565b60008060408385031215610910578182fd5b6109198361084c565b946020939093013593505050565b901515815260200190565b6000602080835283518082850152825b8181101561095e57858101830151858201604001528201610942565b8181111561096f5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260408201527f616c616e63650000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760408201527f207a65726f000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610c8e577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b500190565b600281046001821680610ca757607f821691505b60208210811415610ce1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212209580393756d31d73d138880e21819c5ac29d9d6bc74da890a74dd36eb581e3c764736f6c63430008010033"; From f27f17534f03a826bde7da61fb97172904944e00 Mon Sep 17 00:00:00 2001 From: KevinMansour <77366744+KevinMansour@users.noreply.github.com> Date: Fri, 23 Jun 2023 22:12:19 -0400 Subject: [PATCH 02/27] whiteList --- packages/hardhat/contracts/Quest.sol | 30 ++--- packages/hardhat/contracts/QuestFactory.sol | 24 ++-- .../hardhat/contracts/libraries/Models.sol | 9 ++ packages/hardhat/coverage.json | 2 +- packages/hardhat/test/test-helper.ts | 18 ++- packages/hardhat/typechain/QuestFactory.d.ts | 5 +- .../factories/OwnableCeleste__factory.ts | 2 +- .../factories/QuestFactory__factory.ts | 8 +- .../typechain/factories/Quest__factory.ts | 123 +++++++++--------- 9 files changed, 108 insertions(+), 113 deletions(-) diff --git a/packages/hardhat/contracts/Quest.sol b/packages/hardhat/contracts/Quest.sol index 0c970c5d..4fe8b966 100644 --- a/packages/hardhat/contracts/Quest.sol +++ b/packages/hardhat/contracts/Quest.sol @@ -7,7 +7,6 @@ import "@openzeppelin/contracts/utils/math/SafeMath.sol"; import "./libraries/Deposit.sol"; import "./libraries/Models.sol"; import "./libraries/IExecutable.sol"; -import "hardhat/console.sol"; contract Quest is IExecutable { using SafeMath for uint256; @@ -46,38 +45,27 @@ contract Quest is IExecutable { constructor( string memory _questTitle, bytes memory _questDetailsRef, - IERC20 _rewardToken, - uint256 _expireTime, - address _aragonGovernAddress, - address payable _fundsRecoveryAddress, Models.Deposit memory _createDeposit, Models.Deposit memory _playDeposit, - address _questCreator, - uint32 _maxPlayers, - bool _isWhiteList + Models.QuestParam memory _questParam ) { - // uint32 check = _isWhiteList ? 1 : 0; - // console.log("check:", check); - // console.log("Max players:", maxPlayers); - // console.log("Maxplayers * check = ", maxPlayers * check); require( - !(_maxPlayers > 0 && _isWhiteList), - // _maxPlayers * check == 0, + !(_questParam.isWhiteList && _questParam.maxPlayers > 0), "ERROR: Can't create a whiteListed quest with max players greater than 0 (infinity)" ); questTitle = _questTitle; questDetailsRef = _questDetailsRef; - rewardToken = _rewardToken; - expireTime = _expireTime; - aragonGovernAddress = _aragonGovernAddress; - fundsRecoveryAddress = _fundsRecoveryAddress; - questCreator = _questCreator; + rewardToken = _questParam.rewardToken; + expireTime = _questParam.expireTime; + aragonGovernAddress = _questParam.aragonGovernAddress; + fundsRecoveryAddress = _questParam.fundsRecoveryAddress; + questCreator = _questParam.questCreator; createDeposit = _createDeposit; playDeposit = _playDeposit; isCreateDepositReleased = false; - maxPlayers = _maxPlayers; - isWhiteList = _isWhiteList; + maxPlayers = _questParam.maxPlayers; + isWhiteList = _questParam.isWhiteList; } /* diff --git a/packages/hardhat/contracts/QuestFactory.sol b/packages/hardhat/contracts/QuestFactory.sol index b457ae65..cd35c0c7 100644 --- a/packages/hardhat/contracts/QuestFactory.sol +++ b/packages/hardhat/contracts/QuestFactory.sol @@ -27,8 +27,8 @@ contract QuestFactory is Ownable { address playDepositToken, uint256 playDepositAmount, address creator, - uint32 maxPlayers, - bool isWhiteList + uint32 maxPlayers + // bool isWhiteList ); event CreateDepositChanged( @@ -101,15 +101,17 @@ contract QuestFactory is Ownable { Quest quest = new Quest( _questTitle, _questDetailsRef, - _rewardToken, - _expireTime, - aragonGovernAddress, - _fundsRecoveryAddress, Models.Deposit(createDeposit.token, createDeposit.amount), Models.Deposit(playDeposit.token, playDeposit.amount), - msg.sender, - _maxPlayers, - _isWhiteList + Models.QuestParam( + msg.sender, + _maxPlayers, + _rewardToken, + _expireTime, + aragonGovernAddress, + _fundsRecoveryAddress, + _isWhiteList + ) ); // Collect deposit from quest creator and send it to quest @@ -127,8 +129,8 @@ contract QuestFactory is Ownable { address(playDeposit.token), playDeposit.amount, msg.sender, - _maxPlayers, - _isWhiteList + _maxPlayers + // _isWhiteList ); return address(quest); diff --git a/packages/hardhat/contracts/libraries/Models.sol b/packages/hardhat/contracts/libraries/Models.sol index 55abfa23..f6222952 100644 --- a/packages/hardhat/contracts/libraries/Models.sol +++ b/packages/hardhat/contracts/libraries/Models.sol @@ -12,4 +12,13 @@ library Models { address player; uint256 amount; } + struct QuestParam { + address questCreator; + uint32 maxPlayers; + IERC20 rewardToken; + uint256 expireTime; + address aragonGovernAddress; + address payable fundsRecoveryAddress; + bool isWhiteList; + } } diff --git a/packages/hardhat/coverage.json b/packages/hardhat/coverage.json index 671e81a0..c4ff2faf 100644 --- a/packages/hardhat/coverage.json +++ b/packages/hardhat/coverage.json @@ -1 +1 @@ -{"contracts\\libraries\\Deposit.sol":{"l":{"23":53,"24":51,"35":53,"37":53,"41":53,"46":51,"57":69,"58":69},"path":"C:\\Users\\gossm\\Documents\\Projects\\quests\\packages\\hardhat\\contracts\\libraries\\Deposit.sol","s":{"1":53,"2":51,"3":53,"4":53,"5":53,"6":51,"7":69,"8":69},"b":{"1":[53,0],"2":[51,2],"3":[69,0]},"f":{"1":53,"2":53,"3":69},"fnMap":{"1":{"name":"collectFrom","line":18,"loc":{"start":{"line":18,"column":4},"end":{"line":25,"column":4}}},"2":{"name":"collectFrom","line":32,"loc":{"start":{"line":32,"column":4},"end":{"line":52,"column":4}}},"3":{"name":"releaseTo","line":54,"loc":{"start":{"line":54,"column":4},"end":{"line":60,"column":4}}}},"statementMap":{"1":{"start":{"line":23,"column":8},"end":{"line":23,"column":38}},"2":{"start":{"line":24,"column":8},"end":{"line":24,"column":34}},"3":{"start":{"line":35,"column":8},"end":{"line":35,"column":988}},"4":{"start":{"line":37,"column":12},"end":{"line":37,"column":1069}},"5":{"start":{"line":41,"column":12},"end":{"line":41,"column":1201}},"6":{"start":{"line":46,"column":12},"end":{"line":46,"column":1340}},"7":{"start":{"line":57,"column":8},"end":{"line":57,"column":1606}},"8":{"start":{"line":58,"column":12},"end":{"line":58,"column":66}}},"branchMap":{"1":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":8}},{"start":{"line":35,"column":8},"end":{"line":35,"column":8}}]},"2":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":12}},{"start":{"line":41,"column":12},"end":{"line":41,"column":12}}]},"3":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":8}},{"start":{"line":57,"column":8},"end":{"line":57,"column":8}}]}}},"contracts\\libraries\\IExecutable.sol":{"l":{},"path":"C:\\Users\\gossm\\Documents\\Projects\\quests\\packages\\hardhat\\contracts\\libraries\\IExecutable.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts\\libraries\\Models.sol":{"l":{},"path":"C:\\Users\\gossm\\Documents\\Projects\\quests\\packages\\hardhat\\contracts\\libraries\\Models.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts\\Quest.sol":{"l":{"49":94,"50":94,"51":94,"52":94,"53":94,"54":94,"55":94,"56":94,"57":94,"59":94,"60":94,"82":22,"83":21,"85":20,"87":20,"89":12,"90":6,"91":6,"93":6,"96":12,"97":6,"100":6,"104":20,"105":7,"106":7,"112":19,"113":19,"116":18,"118":18,"128":16,"131":15,"132":12,"133":12,"136":15,"139":15,"140":3,"145":15,"155":3,"172":44,"176":43,"180":42,"181":41,"182":41,"184":40,"186":39,"187":39,"200":8,"204":7,"205":7,"208":6,"210":6,"212":6,"213":6,"220":5,"226":51,"227":15,"228":8,"231":43},"path":"C:\\Users\\gossm\\Documents\\Projects\\quests\\packages\\hardhat\\contracts\\Quest.sol","s":{"1":22,"2":21,"3":20,"4":20,"5":12,"6":6,"7":12,"8":6,"9":20,"10":7,"11":7,"12":19,"13":19,"14":18,"15":18,"16":16,"17":15,"18":12,"19":15,"20":15,"21":15,"22":3,"23":44,"24":43,"25":42,"26":41,"27":41,"28":40,"29":39,"30":39,"31":8,"32":7,"33":7,"34":6,"35":6,"36":6,"37":5,"38":51,"39":15,"40":8,"41":43},"b":{"1":[21,1],"2":[20,1],"3":[12,8],"4":[6,6],"5":[6,6],"6":[7,13],"7":[6,1],"8":[19,0],"9":[15,1],"10":[12,3],"11":[3,12],"12":[43,1],"13":[22,21],"14":[42,1],"15":[39,3],"16":[41,1],"17":[40,1],"18":[7,1],"19":[3,4],"20":[6,1],"21":[8,7]},"f":{"1":94,"2":22,"3":16,"4":3,"5":44,"6":8,"7":5,"8":51},"fnMap":{"1":{"name":"constructor","line":37,"loc":{"start":{"line":37,"column":4},"end":{"line":61,"column":4}}},"2":{"name":"claim","line":76,"loc":{"start":{"line":76,"column":4},"end":{"line":119,"column":4}}},"3":{"name":"recoverFundsAndDeposit","line":127,"loc":{"start":{"line":127,"column":4},"end":{"line":146,"column":4}}},"4":{"name":"canExecute","line":152,"loc":{"start":{"line":152,"column":4},"end":{"line":156,"column":4}}},"5":{"name":"play","line":171,"loc":{"start":{"line":171,"column":4},"end":{"line":188,"column":4}}},"6":{"name":"unplay","line":199,"loc":{"start":{"line":199,"column":4},"end":{"line":214,"column":4}}},"7":{"name":"getPlayers","line":219,"loc":{"start":{"line":219,"column":4},"end":{"line":221,"column":4}}},"8":{"name":"findIndexOfPlayer","line":225,"loc":{"start":{"line":225,"column":4},"end":{"line":232,"column":4}}}},"statementMap":{"1":{"start":{"line":82,"column":8},"end":{"line":82,"column":77}},"2":{"start":{"line":83,"column":8},"end":{"line":83,"column":59}},"3":{"start":{"line":85,"column":8},"end":{"line":85,"column":62}},"4":{"start":{"line":87,"column":8},"end":{"line":87,"column":2875}},"5":{"start":{"line":89,"column":12},"end":{"line":89,"column":2985}},"6":{"start":{"line":90,"column":16},"end":{"line":90,"column":73}},"7":{"start":{"line":96,"column":12},"end":{"line":96,"column":3328}},"8":{"start":{"line":97,"column":16},"end":{"line":97,"column":3408}},"9":{"start":{"line":104,"column":8},"end":{"line":104,"column":3588}},"10":{"start":{"line":105,"column":12},"end":{"line":105,"column":56}},"11":{"start":{"line":106,"column":12},"end":{"line":106,"column":3724}},"12":{"start":{"line":112,"column":8},"end":{"line":112,"column":3875}},"13":{"start":{"line":113,"column":12},"end":{"line":113,"column":53}},"14":{"start":{"line":116,"column":8},"end":{"line":116,"column":61}},"15":{"start":{"line":118,"column":8},"end":{"line":118,"column":54}},"16":{"start":{"line":128,"column":8},"end":{"line":128,"column":67}},"17":{"start":{"line":131,"column":8},"end":{"line":131,"column":4472}},"18":{"start":{"line":132,"column":12},"end":{"line":132,"column":48}},"19":{"start":{"line":136,"column":8},"end":{"line":136,"column":62}},"20":{"start":{"line":139,"column":8},"end":{"line":139,"column":4762}},"21":{"start":{"line":145,"column":8},"end":{"line":145,"column":62}},"22":{"start":{"line":155,"column":8},"end":{"line":155,"column":48}},"23":{"start":{"line":172,"column":8},"end":{"line":172,"column":5858}},"24":{"start":{"line":176,"column":8},"end":{"line":176,"column":6006}},"25":{"start":{"line":180,"column":8},"end":{"line":180,"column":68}},"26":{"start":{"line":181,"column":8},"end":{"line":181,"column":55}},"27":{"start":{"line":182,"column":8},"end":{"line":182,"column":65}},"28":{"start":{"line":184,"column":8},"end":{"line":184,"column":57}},"29":{"start":{"line":186,"column":8},"end":{"line":186,"column":31}},"30":{"start":{"line":187,"column":8},"end":{"line":187,"column":50}},"31":{"start":{"line":200,"column":8},"end":{"line":200,"column":6868}},"32":{"start":{"line":204,"column":8},"end":{"line":204,"column":55}},"33":{"start":{"line":205,"column":8},"end":{"line":205,"column":62}},"34":{"start":{"line":210,"column":8},"end":{"line":210,"column":23}},"35":{"start":{"line":212,"column":8},"end":{"line":212,"column":37}},"36":{"start":{"line":213,"column":8},"end":{"line":213,"column":52}},"37":{"start":{"line":220,"column":8},"end":{"line":220,"column":25}},"38":{"start":{"line":226,"column":8},"end":{"line":226,"column":7803}},"39":{"start":{"line":227,"column":12},"end":{"line":227,"column":7870}},"40":{"start":{"line":228,"column":16},"end":{"line":228,"column":32}},"41":{"start":{"line":231,"column":8},"end":{"line":231,"column":17}}},"branchMap":{"1":{"line":82,"type":"if","locations":[{"start":{"line":82,"column":8},"end":{"line":82,"column":8}},{"start":{"line":82,"column":8},"end":{"line":82,"column":8}}]},"2":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":83,"column":8}},{"start":{"line":83,"column":8},"end":{"line":83,"column":8}}]},"3":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":87,"column":8}},{"start":{"line":87,"column":8},"end":{"line":87,"column":8}}]},"4":{"line":89,"type":"if","locations":[{"start":{"line":89,"column":12},"end":{"line":89,"column":12}},{"start":{"line":89,"column":12},"end":{"line":89,"column":12}}]},"5":{"line":96,"type":"if","locations":[{"start":{"line":96,"column":12},"end":{"line":96,"column":12}},{"start":{"line":96,"column":12},"end":{"line":96,"column":12}}]},"6":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":8},"end":{"line":104,"column":8}},{"start":{"line":104,"column":8},"end":{"line":104,"column":8}}]},"7":{"line":106,"type":"if","locations":[{"start":{"line":106,"column":12},"end":{"line":106,"column":12}},{"start":{"line":106,"column":12},"end":{"line":106,"column":12}}]},"8":{"line":112,"type":"if","locations":[{"start":{"line":112,"column":8},"end":{"line":112,"column":8}},{"start":{"line":112,"column":8},"end":{"line":112,"column":8}}]},"9":{"line":128,"type":"if","locations":[{"start":{"line":128,"column":8},"end":{"line":128,"column":8}},{"start":{"line":128,"column":8},"end":{"line":128,"column":8}}]},"10":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":8},"end":{"line":131,"column":8}},{"start":{"line":131,"column":8},"end":{"line":131,"column":8}}]},"11":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":8},"end":{"line":139,"column":8}},{"start":{"line":139,"column":8},"end":{"line":139,"column":8}}]},"12":{"line":172,"type":"if","locations":[{"start":{"line":172,"column":8},"end":{"line":172,"column":8}},{"start":{"line":172,"column":8},"end":{"line":172,"column":8}}]},"13":{"line":173,"type":"cond-expr","locations":[{"start":{"line":173,"column":12},"end":{"line":173,"column":32}},{"start":{"line":173,"column":37},"end":{"line":173,"column":62}}]},"14":{"line":176,"type":"if","locations":[{"start":{"line":176,"column":8},"end":{"line":176,"column":8}},{"start":{"line":176,"column":8},"end":{"line":176,"column":8}}]},"15":{"line":177,"type":"cond-expr","locations":[{"start":{"line":177,"column":12},"end":{"line":177,"column":26}},{"start":{"line":177,"column":31},"end":{"line":177,"column":60}}]},"16":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":8},"end":{"line":180,"column":8}},{"start":{"line":180,"column":8},"end":{"line":180,"column":8}}]},"17":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":8},"end":{"line":182,"column":8}},{"start":{"line":182,"column":8},"end":{"line":182,"column":8}}]},"18":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":8},"end":{"line":200,"column":8}},{"start":{"line":200,"column":8},"end":{"line":200,"column":8}}]},"19":{"line":201,"type":"cond-expr","locations":[{"start":{"line":201,"column":12},"end":{"line":201,"column":32}},{"start":{"line":201,"column":37},"end":{"line":201,"column":62}}]},"20":{"line":205,"type":"if","locations":[{"start":{"line":205,"column":8},"end":{"line":205,"column":8}},{"start":{"line":205,"column":8},"end":{"line":205,"column":8}}]},"21":{"line":227,"type":"if","locations":[{"start":{"line":227,"column":12},"end":{"line":227,"column":12}},{"start":{"line":227,"column":12},"end":{"line":227,"column":12}}]}}},"contracts\\QuestFactory.sol":{"l":{"49":42,"50":42,"51":42,"52":42,"53":3,"64":48,"65":48,"75":48,"76":48,"99":13,"113":13,"115":12,"130":12,"141":3},"path":"C:\\Users\\gossm\\Documents\\Projects\\quests\\packages\\hardhat\\contracts\\QuestFactory.sol","s":{"1":42,"2":42,"3":42,"4":3,"5":48,"6":48,"7":13,"8":13,"9":12,"10":12},"b":{"1":[3,39],"2":[48,1],"3":[48,1],"4":[3,1]},"f":{"1":42,"2":48,"3":48,"4":13,"5":3},"fnMap":{"1":{"name":"constructor","line":41,"loc":{"start":{"line":41,"column":4},"end":{"line":55,"column":4}}},"2":{"name":"setCreateDeposit","line":63,"loc":{"start":{"line":63,"column":4},"end":{"line":66,"column":4}}},"3":{"name":"setPlayDeposit","line":74,"loc":{"start":{"line":74,"column":4},"end":{"line":77,"column":4}}},"4":{"name":"createQuest","line":91,"loc":{"start":{"line":91,"column":4},"end":{"line":131,"column":4}}},"5":{"name":"setAragonGovernAddress","line":140,"loc":{"start":{"line":138,"column":4},"end":{"line":142,"column":4}}}},"statementMap":{"1":{"start":{"line":50,"column":8},"end":{"line":50,"column":66}},"2":{"start":{"line":51,"column":8},"end":{"line":51,"column":60}},"3":{"start":{"line":52,"column":8},"end":{"line":52,"column":1623}},"4":{"start":{"line":53,"column":12},"end":{"line":53,"column":43}},"5":{"start":{"line":65,"column":8},"end":{"line":65,"column":74}},"6":{"start":{"line":76,"column":8},"end":{"line":76,"column":72}},"7":{"start":{"line":99,"column":8},"end":{"line":99,"column":3297}},"8":{"start":{"line":113,"column":8},"end":{"line":113,"column":60}},"9":{"start":{"line":115,"column":8},"end":{"line":115,"column":3849}},"10":{"start":{"line":130,"column":8},"end":{"line":130,"column":29}}},"branchMap":{"1":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":52,"column":8}},{"start":{"line":52,"column":8},"end":{"line":52,"column":8}}]},"2":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":67},"end":{"line":63,"column":67}},{"start":{"line":63,"column":67},"end":{"line":63,"column":67}}]},"3":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":65},"end":{"line":74,"column":65}},{"start":{"line":74,"column":65},"end":{"line":74,"column":65}}]},"4":{"line":140,"type":"if","locations":[{"start":{"line":140,"column":15},"end":{"line":140,"column":15}},{"start":{"line":140,"column":15},"end":{"line":140,"column":15}}]}}}} \ No newline at end of file +{"contracts\\libraries\\Deposit.sol":{"l":{"23":53,"24":51,"35":53,"37":53,"41":53,"46":51,"57":69,"58":69},"path":"C:\\Users\\kevin\\Documents\\GitHub\\quests\\packages\\hardhat\\contracts\\libraries\\Deposit.sol","s":{"1":53,"2":51,"3":53,"4":53,"5":53,"6":51,"7":69,"8":69},"b":{"1":[53,0],"2":[51,2],"3":[69,0]},"f":{"1":53,"2":53,"3":69},"fnMap":{"1":{"name":"collectFrom","line":18,"loc":{"start":{"line":18,"column":4},"end":{"line":25,"column":4}}},"2":{"name":"collectFrom","line":32,"loc":{"start":{"line":32,"column":4},"end":{"line":52,"column":4}}},"3":{"name":"releaseTo","line":54,"loc":{"start":{"line":54,"column":4},"end":{"line":60,"column":4}}}},"statementMap":{"1":{"start":{"line":23,"column":8},"end":{"line":23,"column":38}},"2":{"start":{"line":24,"column":8},"end":{"line":24,"column":34}},"3":{"start":{"line":35,"column":8},"end":{"line":35,"column":954}},"4":{"start":{"line":37,"column":12},"end":{"line":37,"column":1033}},"5":{"start":{"line":41,"column":12},"end":{"line":41,"column":1161}},"6":{"start":{"line":46,"column":12},"end":{"line":46,"column":1295}},"7":{"start":{"line":57,"column":8},"end":{"line":57,"column":1550}},"8":{"start":{"line":58,"column":12},"end":{"line":58,"column":66}}},"branchMap":{"1":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":8}},{"start":{"line":35,"column":8},"end":{"line":35,"column":8}}]},"2":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":12}},{"start":{"line":41,"column":12},"end":{"line":41,"column":12}}]},"3":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":8}},{"start":{"line":57,"column":8},"end":{"line":57,"column":8}}]}}},"contracts\\libraries\\IExecutable.sol":{"l":{},"path":"C:\\Users\\kevin\\Documents\\GitHub\\quests\\packages\\hardhat\\contracts\\libraries\\IExecutable.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts\\libraries\\Models.sol":{"l":{},"path":"C:\\Users\\kevin\\Documents\\GitHub\\quests\\packages\\hardhat\\contracts\\libraries\\Models.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts\\Quest.sol":{"l":{"39":4,"43":4,"53":109,"54":109,"55":109,"56":109,"57":109,"58":109,"59":109,"60":109,"61":109,"63":109,"64":109,"65":109,"87":22,"88":21,"90":20,"92":20,"94":12,"95":6,"96":6,"98":6,"101":12,"102":6,"105":6,"109":20,"110":7,"111":7,"117":19,"118":19,"121":18,"123":18,"133":16,"136":15,"137":12,"138":12,"141":15,"144":15,"145":3,"150":15,"160":5,"177":45,"181":44,"185":43,"189":42,"190":41,"191":41,"193":40,"195":39,"196":39,"200":4,"204":3,"205":3,"218":9,"222":8,"226":7,"227":7,"230":6,"232":6,"234":6,"235":6,"242":6,"248":53,"249":18,"250":10,"253":43},"path":"C:\\Users\\kevin\\Documents\\GitHub\\quests\\packages\\hardhat\\contracts\\Quest.sol","s":{"1":4,"2":22,"3":21,"4":20,"5":20,"6":12,"7":6,"8":12,"9":6,"10":20,"11":7,"12":7,"13":19,"14":19,"15":18,"16":18,"17":16,"18":15,"19":12,"20":15,"21":15,"22":15,"23":5,"24":45,"25":44,"26":43,"27":42,"28":41,"29":41,"30":40,"31":39,"32":39,"33":4,"34":3,"35":9,"36":8,"37":7,"38":7,"39":6,"40":6,"41":6,"42":6,"43":53,"44":18,"45":10,"46":43},"b":{"1":[4,0],"2":[21,1],"3":[20,1],"4":[12,8],"5":[6,6],"6":[6,6],"7":[7,13],"8":[6,1],"9":[19,0],"10":[15,1],"11":[12,3],"12":[3,12],"13":[44,1],"14":[43,1],"15":[22,21],"16":[42,1],"17":[39,3],"18":[41,1],"19":[40,1],"20":[4,0],"21":[3,1],"22":[8,1],"23":[7,1],"24":[3,4],"25":[6,1],"26":[10,8]},"f":{"1":4,"2":109,"3":22,"4":16,"5":5,"6":45,"7":4,"8":9,"9":6,"10":53},"fnMap":{"1":{"name":"OnlyCreator","line":38,"loc":{"start":{"line":38,"column":4},"end":{"line":44,"column":4}}},"2":{"name":"constructor","line":46,"loc":{"start":{"line":46,"column":4},"end":{"line":66,"column":4}}},"3":{"name":"claim","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":124,"column":4}}},"4":{"name":"recoverFundsAndDeposit","line":132,"loc":{"start":{"line":132,"column":4},"end":{"line":151,"column":4}}},"5":{"name":"canExecute","line":157,"loc":{"start":{"line":157,"column":4},"end":{"line":161,"column":4}}},"6":{"name":"play","line":176,"loc":{"start":{"line":176,"column":4},"end":{"line":197,"column":4}}},"7":{"name":"setWhiteList","line":199,"loc":{"start":{"line":199,"column":4},"end":{"line":206,"column":4}}},"8":{"name":"unplay","line":217,"loc":{"start":{"line":217,"column":4},"end":{"line":236,"column":4}}},"9":{"name":"getPlayers","line":241,"loc":{"start":{"line":241,"column":4},"end":{"line":243,"column":4}}},"10":{"name":"findIndexOfPlayer","line":247,"loc":{"start":{"line":247,"column":4},"end":{"line":254,"column":4}}}},"statementMap":{"1":{"start":{"line":39,"column":8},"end":{"line":39,"column":1373}},"2":{"start":{"line":87,"column":8},"end":{"line":87,"column":77}},"3":{"start":{"line":88,"column":8},"end":{"line":88,"column":59}},"4":{"start":{"line":90,"column":8},"end":{"line":90,"column":62}},"5":{"start":{"line":92,"column":8},"end":{"line":92,"column":3043}},"6":{"start":{"line":94,"column":12},"end":{"line":94,"column":3151}},"7":{"start":{"line":95,"column":16},"end":{"line":95,"column":73}},"8":{"start":{"line":101,"column":12},"end":{"line":101,"column":3487}},"9":{"start":{"line":102,"column":16},"end":{"line":102,"column":3566}},"10":{"start":{"line":109,"column":8},"end":{"line":109,"column":3739}},"11":{"start":{"line":110,"column":12},"end":{"line":110,"column":56}},"12":{"start":{"line":111,"column":12},"end":{"line":111,"column":3873}},"13":{"start":{"line":117,"column":8},"end":{"line":117,"column":4018}},"14":{"start":{"line":118,"column":12},"end":{"line":118,"column":53}},"15":{"start":{"line":121,"column":8},"end":{"line":121,"column":61}},"16":{"start":{"line":123,"column":8},"end":{"line":123,"column":54}},"17":{"start":{"line":133,"column":8},"end":{"line":133,"column":67}},"18":{"start":{"line":136,"column":8},"end":{"line":136,"column":4596}},"19":{"start":{"line":137,"column":12},"end":{"line":137,"column":48}},"20":{"start":{"line":141,"column":8},"end":{"line":141,"column":62}},"21":{"start":{"line":144,"column":8},"end":{"line":144,"column":4878}},"22":{"start":{"line":150,"column":8},"end":{"line":150,"column":62}},"23":{"start":{"line":160,"column":8},"end":{"line":160,"column":48}},"24":{"start":{"line":177,"column":8},"end":{"line":177,"column":5941}},"25":{"start":{"line":181,"column":8},"end":{"line":181,"column":6073}},"26":{"start":{"line":185,"column":8},"end":{"line":185,"column":6217}},"27":{"start":{"line":189,"column":8},"end":{"line":189,"column":68}},"28":{"start":{"line":190,"column":8},"end":{"line":190,"column":55}},"29":{"start":{"line":191,"column":8},"end":{"line":191,"column":65}},"30":{"start":{"line":193,"column":8},"end":{"line":193,"column":57}},"31":{"start":{"line":195,"column":8},"end":{"line":195,"column":31}},"32":{"start":{"line":196,"column":8},"end":{"line":196,"column":50}},"33":{"start":{"line":200,"column":8},"end":{"line":200,"column":6776}},"34":{"start":{"line":205,"column":8},"end":{"line":205,"column":56}},"35":{"start":{"line":218,"column":8},"end":{"line":218,"column":7364}},"36":{"start":{"line":222,"column":8},"end":{"line":222,"column":7480}},"37":{"start":{"line":226,"column":8},"end":{"line":226,"column":55}},"38":{"start":{"line":227,"column":8},"end":{"line":227,"column":62}},"39":{"start":{"line":232,"column":8},"end":{"line":232,"column":23}},"40":{"start":{"line":234,"column":8},"end":{"line":234,"column":37}},"41":{"start":{"line":235,"column":8},"end":{"line":235,"column":52}},"42":{"start":{"line":242,"column":8},"end":{"line":242,"column":25}},"43":{"start":{"line":248,"column":8},"end":{"line":248,"column":8389}},"44":{"start":{"line":249,"column":12},"end":{"line":249,"column":8455}},"45":{"start":{"line":250,"column":16},"end":{"line":250,"column":32}},"46":{"start":{"line":253,"column":8},"end":{"line":253,"column":17}}},"branchMap":{"1":{"line":39,"type":"if","locations":[{"start":{"line":39,"column":8},"end":{"line":39,"column":8}},{"start":{"line":39,"column":8},"end":{"line":39,"column":8}}]},"2":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":87,"column":8}},{"start":{"line":87,"column":8},"end":{"line":87,"column":8}}]},"3":{"line":88,"type":"if","locations":[{"start":{"line":88,"column":8},"end":{"line":88,"column":8}},{"start":{"line":88,"column":8},"end":{"line":88,"column":8}}]},"4":{"line":92,"type":"if","locations":[{"start":{"line":92,"column":8},"end":{"line":92,"column":8}},{"start":{"line":92,"column":8},"end":{"line":92,"column":8}}]},"5":{"line":94,"type":"if","locations":[{"start":{"line":94,"column":12},"end":{"line":94,"column":12}},{"start":{"line":94,"column":12},"end":{"line":94,"column":12}}]},"6":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":12},"end":{"line":101,"column":12}},{"start":{"line":101,"column":12},"end":{"line":101,"column":12}}]},"7":{"line":109,"type":"if","locations":[{"start":{"line":109,"column":8},"end":{"line":109,"column":8}},{"start":{"line":109,"column":8},"end":{"line":109,"column":8}}]},"8":{"line":111,"type":"if","locations":[{"start":{"line":111,"column":12},"end":{"line":111,"column":12}},{"start":{"line":111,"column":12},"end":{"line":111,"column":12}}]},"9":{"line":117,"type":"if","locations":[{"start":{"line":117,"column":8},"end":{"line":117,"column":8}},{"start":{"line":117,"column":8},"end":{"line":117,"column":8}}]},"10":{"line":133,"type":"if","locations":[{"start":{"line":133,"column":8},"end":{"line":133,"column":8}},{"start":{"line":133,"column":8},"end":{"line":133,"column":8}}]},"11":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":8},"end":{"line":136,"column":8}},{"start":{"line":136,"column":8},"end":{"line":136,"column":8}}]},"12":{"line":144,"type":"if","locations":[{"start":{"line":144,"column":8},"end":{"line":144,"column":8}},{"start":{"line":144,"column":8},"end":{"line":144,"column":8}}]},"13":{"line":177,"type":"if","locations":[{"start":{"line":177,"column":8},"end":{"line":177,"column":8}},{"start":{"line":177,"column":8},"end":{"line":177,"column":8}}]},"14":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":8},"end":{"line":181,"column":8}},{"start":{"line":181,"column":8},"end":{"line":181,"column":8}}]},"15":{"line":182,"type":"cond-expr","locations":[{"start":{"line":182,"column":12},"end":{"line":182,"column":32}},{"start":{"line":182,"column":37},"end":{"line":182,"column":62}}]},"16":{"line":185,"type":"if","locations":[{"start":{"line":185,"column":8},"end":{"line":185,"column":8}},{"start":{"line":185,"column":8},"end":{"line":185,"column":8}}]},"17":{"line":186,"type":"cond-expr","locations":[{"start":{"line":186,"column":12},"end":{"line":186,"column":26}},{"start":{"line":186,"column":31},"end":{"line":186,"column":60}}]},"18":{"line":189,"type":"if","locations":[{"start":{"line":189,"column":8},"end":{"line":189,"column":8}},{"start":{"line":189,"column":8},"end":{"line":189,"column":8}}]},"19":{"line":191,"type":"if","locations":[{"start":{"line":191,"column":8},"end":{"line":191,"column":8}},{"start":{"line":191,"column":8},"end":{"line":191,"column":8}}]},"20":{"line":199,"type":"if","locations":[{"start":{"line":199,"column":62},"end":{"line":199,"column":62}},{"start":{"line":199,"column":62},"end":{"line":199,"column":62}}]},"21":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":8},"end":{"line":200,"column":8}},{"start":{"line":200,"column":8},"end":{"line":200,"column":8}}]},"22":{"line":218,"type":"if","locations":[{"start":{"line":218,"column":8},"end":{"line":218,"column":8}},{"start":{"line":218,"column":8},"end":{"line":218,"column":8}}]},"23":{"line":222,"type":"if","locations":[{"start":{"line":222,"column":8},"end":{"line":222,"column":8}},{"start":{"line":222,"column":8},"end":{"line":222,"column":8}}]},"24":{"line":223,"type":"cond-expr","locations":[{"start":{"line":223,"column":12},"end":{"line":223,"column":32}},{"start":{"line":223,"column":37},"end":{"line":223,"column":62}}]},"25":{"line":227,"type":"if","locations":[{"start":{"line":227,"column":8},"end":{"line":227,"column":8}},{"start":{"line":227,"column":8},"end":{"line":227,"column":8}}]},"26":{"line":249,"type":"if","locations":[{"start":{"line":249,"column":12},"end":{"line":249,"column":12}},{"start":{"line":249,"column":12},"end":{"line":249,"column":12}}]}}},"contracts\\QuestFactory.sol":{"l":{"50":42,"51":42,"52":42,"53":42,"54":3,"65":48,"66":48,"76":48,"77":48,"101":13,"118":13,"120":12,"136":12,"147":3},"path":"C:\\Users\\kevin\\Documents\\GitHub\\quests\\packages\\hardhat\\contracts\\QuestFactory.sol","s":{"1":42,"2":42,"3":42,"4":3,"5":48,"6":48,"7":13,"8":13,"9":12,"10":12},"b":{"1":[3,39],"2":[48,1],"3":[48,1],"4":[3,1]},"f":{"1":42,"2":48,"3":48,"4":13,"5":3},"fnMap":{"1":{"name":"constructor","line":42,"loc":{"start":{"line":42,"column":4},"end":{"line":56,"column":4}}},"2":{"name":"setCreateDeposit","line":64,"loc":{"start":{"line":64,"column":4},"end":{"line":67,"column":4}}},"3":{"name":"setPlayDeposit","line":75,"loc":{"start":{"line":75,"column":4},"end":{"line":78,"column":4}}},"4":{"name":"createQuest","line":92,"loc":{"start":{"line":92,"column":4},"end":{"line":137,"column":4}}},"5":{"name":"setAragonGovernAddress","line":146,"loc":{"start":{"line":144,"column":4},"end":{"line":148,"column":4}}}},"statementMap":{"1":{"start":{"line":51,"column":8},"end":{"line":51,"column":66}},"2":{"start":{"line":52,"column":8},"end":{"line":52,"column":60}},"3":{"start":{"line":53,"column":8},"end":{"line":53,"column":1600}},"4":{"start":{"line":54,"column":12},"end":{"line":54,"column":43}},"5":{"start":{"line":66,"column":8},"end":{"line":66,"column":74}},"6":{"start":{"line":77,"column":8},"end":{"line":77,"column":72}},"7":{"start":{"line":101,"column":8},"end":{"line":101,"column":3254}},"8":{"start":{"line":118,"column":8},"end":{"line":118,"column":60}},"9":{"start":{"line":120,"column":8},"end":{"line":120,"column":3889}},"10":{"start":{"line":136,"column":8},"end":{"line":136,"column":29}}},"branchMap":{"1":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":8},"end":{"line":53,"column":8}},{"start":{"line":53,"column":8},"end":{"line":53,"column":8}}]},"2":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":67},"end":{"line":64,"column":67}},{"start":{"line":64,"column":67},"end":{"line":64,"column":67}}]},"3":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":65},"end":{"line":75,"column":65}},{"start":{"line":75,"column":65},"end":{"line":75,"column":65}}]},"4":{"line":146,"type":"if","locations":[{"start":{"line":146,"column":15},"end":{"line":146,"column":15}},{"start":{"line":146,"column":15},"end":{"line":146,"column":15}}]}}}} \ No newline at end of file diff --git a/packages/hardhat/test/test-helper.ts b/packages/hardhat/test/test-helper.ts index 85ddb44f..7285d591 100644 --- a/packages/hardhat/test/test-helper.ts +++ b/packages/hardhat/test/test-helper.ts @@ -27,15 +27,19 @@ export const deployQuest = async ( const quest = await new Quest__factory(creator).deploy( title, detailIpfsHash, - rewardToken.address, - expireTime, - aragonGovernAddress, - fundsRecoveryAddress, + { token: createDepositToken.address, amount: createDepositAmount }, { token: playDepositToken.address, amount: playDepositAmount }, - creator.address, - maxPlayers, - isWhiteList + + { + questCreator: creator.address, + maxPlayers: maxPlayers, + rewardToken: rewardToken.address, + expireTime: expireTime, + aragonGovernAddress: aragonGovernAddress, + fundsRecoveryAddress: fundsRecoveryAddress, + isWhiteList: isWhiteList, + } ); await quest.deployed(); await rewardToken.connect(quest.signer).mint(quest.address, initialBalance); diff --git a/packages/hardhat/typechain/QuestFactory.d.ts b/packages/hardhat/typechain/QuestFactory.d.ts index 7a676876..d5eed04a 100644 --- a/packages/hardhat/typechain/QuestFactory.d.ts +++ b/packages/hardhat/typechain/QuestFactory.d.ts @@ -122,7 +122,7 @@ interface QuestFactoryInterface extends ethers.utils.Interface { "CreateDepositChanged(uint256,address,uint256)": EventFragment; "OwnershipTransferred(address,address)": EventFragment; "PlayDepositChanged(uint256,address,uint256)": EventFragment; - "QuestCreated(address,string,bytes,address,uint256,address,address,uint256,address,uint256,address,uint32,bool)": EventFragment; + "QuestCreated(address,string,bytes,address,uint256,address,address,uint256,address,uint256,address,uint32)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "CreateDepositChanged"): EventFragment; @@ -456,8 +456,7 @@ export class QuestFactory extends Contract { playDepositToken: null, playDepositAmount: null, creator: null, - maxPlayers: null, - isWhiteList: null + maxPlayers: null ): EventFilter; }; diff --git a/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts b/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts index dc62a5ef..f9bc4bc1 100644 --- a/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts +++ b/packages/hardhat/typechain/factories/OwnableCeleste__factory.ts @@ -334,4 +334,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506040516040806111bf8339810180604052604081101561003057600080fd5b81019080805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018190555050506110db806100e46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637e9adccf11610097578063db18af6c11610066578063db18af6c1461051d578063db9bee4614610592578063e00dd161146105dc578063e55156b5146105fa576100f5565b80637e9adccf1461038b5780638da5cb5b146103b9578063bd881e5314610403578063c13517e114610486576100f5565b8063647846a5116100d3578063647846a5146101fc57806369e15404146102465780637b751b9e146102645780637cb57c64146102e8576100f5565b806313af4035146100fa5780631da213f21461013e578063564a565d14610179575b600080fd5b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610648565b005b6101776004803603604081101561015457600080fd5b8101908080359060200190929190803560ff16906020019092919050505061074f565b005b6101a56004803603602081101561018f57600080fd5b81019080803590602001909291905050506109a0565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260048111156101e757fe5b60ff1681526020019250505060405180910390f35b6102046109f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024e610a16565b6040518082815260200191505060405180910390f35b61026c610a1c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b610389600480360360608110156102fe57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561034557600080fd5b82018360208201111561035757600080fd5b8035906020019184600183028401116401000000008311171561037957600080fd5b9091929391929390505050610a52565b005b6103b7600480360360208110156103a157600080fd5b8101908080359060200190929190505050610a58565b005b6103c1610a5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042f6004803603602081101561041957600080fd5b8101908080359060200190929190505050610a81565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600481111561047157fe5b60ff1681526020019250505060405180910390f35b6105076004803603604081101561049c57600080fd5b8101908080359060200190929190803590602001906401000000008111156104c357600080fd5b8201836020820111156104d557600080fd5b803590602001918460018302840111640100000000831117156104f757600080fd5b9091929391929390505050610adc565b6040518082815260200191505060405180910390f35b6105496004803603602081101561053357600080fd5b8101908080359060200190929190505050610c80565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b61059a610e2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e4610e37565b6040518082815260200191505060405180910390f35b6106466004803603604081101561061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3d565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600481111561081f57fe5b81600481111561082b57fe5b1415801561085057506001600481111561084157fe5b81600481111561084d57fe5b14155b6108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4552523a4f5554434f4d455f4e4f545f41535349474e41424c4500000000000081525060200191505060405180910390fd5b6000600460008481526020019081526020016000209050600160048111156108e657fe5b8160000160149054906101000a900460ff16600481111561090357fe5b14610976576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4552523a4e4f545f44495350555445440000000000000000000000000000000081525060200191505060405180910390fd5b818160000160146101000a81548160ff0219169083600481111561099657fe5b0217905550505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000806000306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154925092509250909192565b50505050565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006004600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508060000160149054906101000a900460ff16915050915091565b600080600254905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160016004811115610b1857fe5b8152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690836004811115610b9957fe5b0217905550905050600260008154809291906001019190505550610c0333306001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4b909392919063ffffffff16565b610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4552523a4445504f5349545f4641494c4544000000000000000000000000000081525060200191505060405180910390fd5b809150509392505050565b600080600060046000858152602001908152602001600020905060036004811115610ca757fe5b8160000160149054906101000a900460ff166004811115610cc457fe5b1415610cfb578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660039250925050610e2a565b600480811115610d0757fe5b8160000160149054906101000a900460ff166004811115610d2457fe5b1415610d5b578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660049250925050610e2a565b60026004811115610d6857fe5b8160000160149054906101000a900460ff166004811115610d8557fe5b1415610dbc578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660009250925050610e2a565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f554e45585045435445445f53544154450000000000000000000000000000000081525060200191505060405180910390fd5b915091565b600030905090565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600181905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050611052868261105d565b915050949350505050565b6000806040516020818551602087016000895af160008111156110a3573d600081146110905760208114611099576110a1565b600193506110a1565b600183511493505b505b5050809150509291505056fea165627a7a72305820ad706482d862b24b604114b56550301559baa2df856f323030b18cdf6d3b49e00029"; + "0x608060405234801561001057600080fd5b506040516040806111bf8339810180604052604081101561003057600080fd5b81019080805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018190555050506110db806100e46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637e9adccf11610097578063db18af6c11610066578063db18af6c1461051d578063db9bee4614610592578063e00dd161146105dc578063e55156b5146105fa576100f5565b80637e9adccf1461038b5780638da5cb5b146103b9578063bd881e5314610403578063c13517e114610486576100f5565b8063647846a5116100d3578063647846a5146101fc57806369e15404146102465780637b751b9e146102645780637cb57c64146102e8576100f5565b806313af4035146100fa5780631da213f21461013e578063564a565d14610179575b600080fd5b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610648565b005b6101776004803603604081101561015457600080fd5b8101908080359060200190929190803560ff16906020019092919050505061074f565b005b6101a56004803603602081101561018f57600080fd5b81019080803590602001909291905050506109a0565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260048111156101e757fe5b60ff1681526020019250505060405180910390f35b6102046109f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024e610a16565b6040518082815260200191505060405180910390f35b61026c610a1c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b610389600480360360608110156102fe57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561034557600080fd5b82018360208201111561035757600080fd5b8035906020019184600183028401116401000000008311171561037957600080fd5b9091929391929390505050610a52565b005b6103b7600480360360208110156103a157600080fd5b8101908080359060200190929190505050610a58565b005b6103c1610a5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042f6004803603602081101561041957600080fd5b8101908080359060200190929190505050610a81565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600481111561047157fe5b60ff1681526020019250505060405180910390f35b6105076004803603604081101561049c57600080fd5b8101908080359060200190929190803590602001906401000000008111156104c357600080fd5b8201836020820111156104d557600080fd5b803590602001918460018302840111640100000000831117156104f757600080fd5b9091929391929390505050610adc565b6040518082815260200191505060405180910390f35b6105496004803603602081101561053357600080fd5b8101908080359060200190929190505050610c80565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b61059a610e2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e4610e37565b6040518082815260200191505060405180910390f35b6106466004803603604081101561061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3d565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600481111561081f57fe5b81600481111561082b57fe5b1415801561085057506001600481111561084157fe5b81600481111561084d57fe5b14155b6108c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4552523a4f5554434f4d455f4e4f545f41535349474e41424c4500000000000081525060200191505060405180910390fd5b6000600460008481526020019081526020016000209050600160048111156108e657fe5b8160000160149054906101000a900460ff16600481111561090357fe5b14610976576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4552523a4e4f545f44495350555445440000000000000000000000000000000081525060200191505060405180910390fd5b818160000160146101000a81548160ff0219169083600481111561099657fe5b0217905550505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000806000306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154925092509250909192565b50505050565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006004600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508060000160149054906101000a900460ff16915050915091565b600080600254905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160016004811115610b1857fe5b8152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690836004811115610b9957fe5b0217905550905050600260008154809291906001019190505550610c0333306001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4b909392919063ffffffff16565b610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4552523a4445504f5349545f4641494c4544000000000000000000000000000081525060200191505060405180910390fd5b809150509392505050565b600080600060046000858152602001908152602001600020905060036004811115610ca757fe5b8160000160149054906101000a900460ff166004811115610cc457fe5b1415610cfb578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660039250925050610e2a565b600480811115610d0757fe5b8160000160149054906101000a900460ff166004811115610d2457fe5b1415610d5b578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660049250925050610e2a565b60026004811115610d6857fe5b8160000160149054906101000a900460ff166004811115610d8557fe5b1415610dbc578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660009250925050610e2a565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f554e45585045435445445f53544154450000000000000000000000000000000081525060200191505060405180910390fd5b915091565b600030905090565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4552523a4e4f545f4f574e45520000000000000000000000000000000000000081525060200191505060405180910390fd5b80600181905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050611052868261105d565b915050949350505050565b6000806040516020818551602087016000895af160008111156110a3573d600081146110905760208114611099576110a1565b600193506110a1565b600183511493505b505b5050809150509291505056fea165627a7a72305820ad526ae7aa1ab8e65a1ec5cf369673b6a337ae20ff8df8363900beea6b1185150029"; diff --git a/packages/hardhat/typechain/factories/QuestFactory__factory.ts b/packages/hardhat/typechain/factories/QuestFactory__factory.ts index eeb412c0..4af3332c 100644 --- a/packages/hardhat/typechain/factories/QuestFactory__factory.ts +++ b/packages/hardhat/typechain/factories/QuestFactory__factory.ts @@ -246,12 +246,6 @@ const _abi = [ name: "maxPlayers", type: "uint32", }, - { - indexed: false, - internalType: "bool", - name: "isWhiteList", - type: "bool", - }, ], name: "QuestCreated", type: "event", @@ -439,4 +433,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b50604051620040373803806200403783398101604081905262000034916200028c565b6200004862000042620000a3565b620000a7565b600180546001600160a01b0319166001600160a01b0388161790556200006f8585620000f7565b6200007b838362000177565b6001600160a01b038116331462000097576200009781620001eb565b505050505050620003b7565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200010162000235565b6040805180820182526001600160a01b0384168082526020909101839052600280546001600160a01b03191690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f250920079906200016b9042908590859062000382565b60405180910390a15050565b6200018162000235565b6040805180820182526001600160a01b0384168082526020909101839052600480546001600160a01b03191690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb89906200016b9042908590859062000382565b620001f562000235565b6001600160a01b038116620002275760405162461bcd60e51b81526004016200021e9062000307565b60405180910390fd5b6200023281620000a7565b50565b6200023f620000a3565b6001600160a01b0316620002526200027d565b6001600160a01b0316146200027b5760405162461bcd60e51b81526004016200021e906200034d565b565b6000546001600160a01b031690565b60008060008060008060c08789031215620002a5578182fd5b8651620002b281620003a1565b6020880151909650620002c581620003a1565b604088015160608901519196509450620002df81620003a1565b608088015160a08901519194509250620002f981620003a1565b809150509295509295509295565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b6001600160a01b03811681146200023257600080fd5b613c7080620003c76000396000f3fe60806040523480156200001157600080fd5b5060043610620000cf5760003560e01c8063b0a87ac11162000081578063d03ffefb1162000063578063d03ffefb146200016b578063edeecdd31462000175578063f2fde38b146200018c57620000cf565b8063b0a87ac1146200014a578063b628a33f146200015457620000cf565b80638c43b41111620000b75780638c43b41114620000f75780638c53c9bd146200010e5780638da5cb5b146200013157620000cf565b8062732e3014620000d4578063715018a614620000ed575b600080fd5b620000eb620000e536600462000c6e565b620001a3565b005b620000eb620001f4565b620000eb6200010836600462000cac565b6200020c565b62000118620002b1565b6040516200012892919062000fee565b60405180910390f35b6200013b620002d3565b60405162000128919062000e7f565b6200013b620002ef565b6200013b6200016536600462000cda565b6200030b565b62000118620004a2565b620000eb6200018636600462000cac565b620004c4565b620000eb6200019d36600462000c6e565b6200055d565b620001ad620005ce565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b620001fe620005ce565b6200020a600062000648565b565b62000216620005ce565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb8990620002a59042908590859062001292565b60405180910390a15050565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460408051808201825260025473ffffffffffffffffffffffffffffffffffffffff9081168252600354602080840191909152835180850185526004548316815260055491810191909152925160009485948d948d948d948d9491909116928c929133908d908d90620003809062000b74565b620003969b9a9998979695949392919062001029565b604051809103906000f080158015620003b3573d6000803e3d6000fd5b506040805180820190915260025473ffffffffffffffffffffffffffffffffffffffff1681526003546020820152909150620003f1903383620006bd565b7f9e202812de1e0ca985481ca3d9e552f82bda863f1dc4c73713de12983b2147b5818a8a8a8a8a600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260010154600460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460010154338f8f6040516200048e9d9c9b9a9998979695949392919062000ef8565b60405180910390a198975050505050505050565b60025460035473ffffffffffffffffffffffffffffffffffffffff9091169082565b620004ce620005ce565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f25092007990620002a59042908590859062001292565b62000567620005ce565b73ffffffffffffffffffffffffffffffffffffffff8116620005c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b790620010d8565b60405180910390fd5b620005cb8162000648565b50565b620005d8620006da565b73ffffffffffffffffffffffffffffffffffffffff16620005f8620002d3565b73ffffffffffffffffffffffffffffffffffffffff16146200020a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b79062001192565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620006c98383620006de565b620006d583826200080d565b505050565b3390565b602082015115620008095781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e9062000743908590309060040162000ea0565b60206040518083038186803b1580156200075c57600080fd5b505afa15801562000771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000797919062000dad565b90508260200151811015620007da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b790620011c7565b60208301518351620006d59173ffffffffffffffffffffffffffffffffffffffff909116908490309062000845565b5050565b602082015115620008095760208201518251620008099173ffffffffffffffffffffffffffffffffffffffff909116908390620008f2565b620008ec846323b872dd60e01b858585604051602401620008699392919062000ec7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000914565b50505050565b620006d58363a9059cbb60e01b84846040516024016200086992919062000fee565b600062000978826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620009d29092919063ffffffff16565b805190915015620006d5578080602001905181019062000999919062000c8d565b620006d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b79062001235565b6060620009e38484600085620009ed565b90505b9392505050565b60608247101562000a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b79062001135565b62000a378562000afc565b62000a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b790620011fe565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405162000a9b919062000e61565b60006040518083038185875af1925050503d806000811462000ada576040519150601f19603f3d011682016040523d82523d6000602084013e62000adf565b606091505b509150915062000af182828662000b1c565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81163b15155b919050565b6060831562000b2d575081620009e6565b82511562000b3e5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b7919062001014565b6128ec806200134f83390190565b600067ffffffffffffffff8084111562000ba05762000ba0620012ed565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171562000be95762000be9620012ed565b8160405280935085815286868601111562000c0357600080fd5b858560208301376000602087830101525050509392505050565b803562000b17816200131c565b803562000b17816200133f565b600082601f83011262000c48578081fd5b620009e68383356020850162000b82565b803563ffffffff8116811462000b1757600080fd5b60006020828403121562000c80578081fd5b8135620009e6816200131c565b60006020828403121562000c9f578081fd5b8151620009e6816200133f565b6000806040838503121562000cbf578081fd5b823562000ccc816200131c565b946020939093013593505050565b600080600080600080600060e0888a03121562000cf5578283fd5b873567ffffffffffffffff8082111562000d0d578485fd5b818a0191508a601f83011262000d21578485fd5b62000d328b83356020850162000b82565b985060208a013591508082111562000d48578485fd5b5062000d578a828b0162000c37565b96505062000d686040890162000c1d565b94506060880135935062000d7f6080890162000c1d565b925062000d8f60a0890162000c59565b915062000d9f60c0890162000c2a565b905092959891949750929550565b60006020828403121562000dbf578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b15159052565b6000815180845262000e00816020860160208601620012be565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b63ffffffff169052565b6000825162000e75818460208701620012be565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8f1682526101a0602083015262000f2b6101a083018f62000de6565b828103604084015262000f3f818f62000de6565b91505073ffffffffffffffffffffffffffffffffffffffff8c1660608301528a608083015273ffffffffffffffffffffffffffffffffffffffff8a1660a083015262000f8f60c083018a62000dc6565b8760e083015262000fa561010083018862000dc6565b8561012083015262000fbc61014083018662000dc6565b62000fcc61016083018562000e57565b62000fdc61018083018462000de0565b9e9d5050505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b600060208252620009e6602083018462000de6565b60006101a08083526200103f8184018f62000de6565b9050828103602084015262001055818e62000de6565b91505073ffffffffffffffffffffffffffffffffffffffff808c1660408401528a6060840152808a16608084015280891660a08401526200109a60c084018962000e32565b620010aa61010084018862000e32565b9490941661014082015263ffffffff9290921661016083015215156101809091015298975050505050505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b92835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b60005b83811015620012db578181015183820152602001620012c1565b83811115620008ec5750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114620005cb57600080fd5b8015158114620005cb57600080fdfe60806040523480156200001157600080fd5b50604051620028ec380380620028ec83398101604081905262000034916200031c565b60008263ffffffff16118015620000485750805b15620000715760405162461bcd60e51b815260040162000068906200042e565b60405180910390fd5b8a51620000869060019060208e01906200016c565b5089516200009c9060029060208d01906200016c565b50600380546001600160a01b03199081166001600160a01b039b8c1617909155600498909855600580548916978a169790971790965560068054600080548a16948b16949094179093558451600880548a16918b169190911790556020948501516009558351600a80548a16918b169190911790559290930151600b55600c805460ff19169055909416919094161763ffffffff60a01b1916600160a01b63ffffffff909416939093029290921760ff60c01b1916600160c01b9215159290920291909117905550620005459050565b8280546200017a90620004d9565b90600052602060002090601f0160209004810192826200019e5760008555620001e9565b82601f10620001b957805160ff1916838001178555620001e9565b82800160010185558215620001e9579182015b82811115620001e9578251825591602001919060010190620001cc565b50620001f7929150620001fb565b5090565b5b80821115620001f75760008155600101620001fc565b80516200021f816200052c565b919050565b805180151581146200021f57600080fd5b600082601f83011262000246578081fd5b81516001600160401b0381111562000262576200026262000516565b602062000278601f8301601f19168201620004a6565b82815285828487010111156200028c578384fd5b835b83811015620002ab5785810183015182820184015282016200028e565b83811115620002bc57848385840101525b5095945050505050565b600060408284031215620002d8578081fd5b620002e46040620004a6565b90508151620002f3816200052c565b808252506020820151602082015292915050565b805163ffffffff811681146200021f57600080fd5b60008060008060008060008060008060006101a08c8e0312156200033e578687fd5b8b516001600160401b0381111562000354578788fd5b620003628e828f0162000235565b60208e0151909c5090506001600160401b0381111562000380578788fd5b6200038e8e828f0162000235565b9a50506200039f60408d0162000212565b985060608c01519750620003b660808d0162000212565b9650620003c660a08d0162000212565b9550620003d78d60c08e01620002c6565b9450620003e98d6101008e01620002c6565b9350620003fa6101408d0162000212565b92506200040b6101608d0162000307565b91506200041c6101808d0162000224565b90509295989b509295989b9093969950565b60208082526052908201527f4552524f523a2043616e27742063726561746520612077686974654c6973746560408201527f642071756573742077697468206d617820706c61796572732067726561746572606082015271207468616e20302028696e66696e6974792960701b608082015260a00190565b604051601f8201601f191681016001600160401b0381118282101715620004d157620004d162000516565b604052919050565b600281046001821680620004ee57607f821691505b602082108114156200051057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200054257600080fd5b50565b61239780620005556000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638b5b9ccc116100cd578063d03ffefb11610081578063e492814f11610066578063e492814f146102a6578063f294cf38146102b9578063f7c618c1146102c15761016c565b8063d03ffefb14610289578063e0c23423146102915761016c565b8063a888c2cd116100b2578063a888c2cd1461024c578063b0a87ac11461026e578063b434151c146102765761016c565b80638b5b9ccc146102215780638c53c9bd146102365761016c565b8063579ca2c911610124578063775b9c1311610109578063775b9c13146101f35780637ceae3101461020657806385c99e2b1461020e5761016c565b8063579ca2c9146101d65780636c3a4cce146101de5761016c565b8063310a1ee311610155578063310a1ee3146101a457806348d6cb53146101b95780634c2412a2146101c15761016c565b8063151dfb06146101715780632f17b18214610186575b600080fd5b61018461017f3660046118d8565b6102c9565b005b61018e6105fd565b60405161019b9190611c4f565b60405180910390f35b6101ac610622565b60405161019b919061217f565b61018e610628565b6101c9610631565b60405161019b9190612188565b610184610655565b6101e661081e565b60405161019b9190611b7b565b6101846102013660046118f2565b61083a565b6101e6610938565b61018e61021c3660046118d8565b610954565b61022961098a565b60405161019b9190611c1a565b61023e6109f9565b60405161019b929190611bf4565b61025f61025a366004611a95565b610a1b565b60405161019b93929190611c6d565b6101e6610af4565b6101846102843660046119bc565b610b10565b61023e610e8d565b610299610eaf565b60405161019b9190611c5a565b6101846102b43660046118d8565b610f3d565b610299611207565b6101e6611214565b6006547801000000000000000000000000000000000000000000000000900460ff161561032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611dd0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610366575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60006103a782611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d99565b600d805461041390600190612225565b8154811061044a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106104aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d80548061052a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b54918101919091526105c090836112f8565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb60715555417582426040516105f1929190611bf4565b60405180910390a15050565b6006547801000000000000000000000000000000000000000000000000900460ff1681565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b600454421015610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e8a565b600c5460ff16610703576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff908116825260095460208301526106d792166112f8565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061075a903090600401611b7b565b60206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190611aad565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff918216911614156107f157600d54600b546107ed916107e6916121e8565b8290611331565b9150505b60065460035461081b9173ffffffffffffffffffffffffffffffffffffffff918216911683611357565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f1e565b6006547801000000000000000000000000000000000000000000000000900460ff1615156001146108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ca8565b80516108fb90600d906020840190611796565b507ff13454c9f44194d5e5e96ac708639b22a3cadb91d2a4ea97870cf94b5dbd5bad814260405161092d929190611c2d565b60405180910390a150565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b600061095f82611230565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156109ef57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109c4575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b60078181548110610a2b57600080fd5b9060005260206000209060030201600091509050806000018054610a4e90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90612268565b8015610ac75780601f10610a9c57610100808354040283529160200191610ac7565b820191906000526020600020905b815481529060010190602001808311610aaa57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fb2565b8351610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612057565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610bf0903090600401611b7b565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611aad565b90508115610cd65760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610c8957600954600090610c7f908390611331565b9450610c8d915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610cd657600d54600b54600091610cd191610cca91906121e8565b8590611331565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610d4c576000610d088285611331565b915050600860010154811015610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d3c565b505b8215610d7657600354610d769073ffffffffffffffffffffffffffffffffffffffff168585611357565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610df49284920190611820565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610e7e90879087908790611c6d565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610ebc90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee890612268565b8015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b505050505081565b6006547801000000000000000000000000000000000000000000000000900460ff1615610f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ec1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610fd1575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60065474010000000000000000000000000000000000000000900463ffffffff1615806110565750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f7b565b60045442106110c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d05565b60006110d282611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461112d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229061208e565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b5460208201526111659033306113fd565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105f19084904290611bf4565b60018054610ebc90612268565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156112d0578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061128f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156112be579050610985565b806112c8816122bc565b915050611234565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561132d576020820151825161132d9173ffffffffffffffffffffffffffffffffffffffff909116908390611357565b5050565b6000808383111561134757506000905080611350565b50600190508183035b9250929050565b6113f88363a9059cbb60e01b8484604051602401611376929190611bf4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611411565b505050565b61140783836114c7565b6113f883826112f8565b6000611473826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166115e69092919063ffffffff16565b8051909150156113f8578080602001905181019061149191906119a0565b6113f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610322906120c5565b60208201511561132d5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906115299085903090600401611b9c565b60206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190611aad565b905082602001518110156115b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fe9565b602083015183516113f89173ffffffffffffffffffffffffffffffffffffffff90911690849030906115ff565b60606115f58484600085611626565b90505b9392505050565b611620846323b872dd60e01b85858560405160240161137693929190611bc3565b50505050565b606082471015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e2d565b61166b85611727565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612020565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116ca9190611b5f565b60006040518083038185875af1925050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b509150915061171c828286611743565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b606083156117525750816115f8565b8251156117625782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229190611c5a565b828054828255906000526020600020908101928215611810579160200282015b8281111561181057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906117b6565b5061181c929150611894565b5090565b82805461182c90612268565b90600052602060002090601f01602090048101928261184e5760008555611810565b82601f1061186757805160ff1916838001178555611810565b82800160010185558215611810579182015b82811115611810578251825591602001919060010190611879565b5b8082111561181c5760008155600101611895565b803573ffffffffffffffffffffffffffffffffffffffff8116811461098557600080fd5b803561098581612353565b6000602082840312156118e9578081fd5b6115f8826118a9565b60006020808385031215611904578182fd5b823567ffffffffffffffff8082111561191b578384fd5b818501915085601f83011261192e578384fd5b81358181111561194057611940612324565b8381029150611950848301612199565b8181528481019084860184860187018a101561196a578788fd5b8795505b838610156119935761197f816118a9565b83526001959095019491860191860161196e565b5098975050505050505050565b6000602082840312156119b1578081fd5b81516115f881612353565b600080600080608085870312156119d1578283fd5b843567ffffffffffffffff808211156119e8578485fd5b818701915087601f8301126119fb578485fd5b8135602082821115611a0f57611a0f612324565b611a3f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612199565b92508183528981838601011115611a54578687fd5b818185018285013786818385010152829750611a71818a016118a9565b96505050505060408501359150611a8a606086016118cd565b905092959194509250565b600060208284031215611aa6578081fd5b5035919050565b600060208284031215611abe578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611b0a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611ad8565b509495945050505050565b60008151808452611b2d81602086016020860161223c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251611b7181846020870161223c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082526115f86020830184611ac5565b600060408252611c406040830185611ac5565b90508260208301529392505050565b901515815260200190565b6000602082526115f86020830184611b15565b600060608252611c806060830186611b15565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b6020808252603d908201527f4552524f523a2043616e27742073657420746865207768697465206c6973742060408201527f746f2061206e6f6e2d77686974656c697374656420636f6e7472616374000000606082015260800190565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526027908201527f4552524f523a2063616e277420756e706c617920612077686974656c6973746560408201527f6420717565737400000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b60208082526037908201527f4552524f523a2043616e27742073656c6620726567697374657220616e64207060408201527f6c617920612077686974656c6973746564205175657374000000000000000000606082015260800190565b60208082526023908201527f4f6e6c792063726561746f722063616e2063616c6c20746869732066756e637460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121e0576121e0612324565b604052919050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612220576122206122f5565b500290565b600082821015612237576122376122f5565b500390565b60005b8381101561225757818101518382015260200161223f565b838111156116205750506000910152565b60028104600182168061227c57607f821691505b602082108114156122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ee576122ee6122f5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461081b57600080fdfea2646970667358221220c5b6392a692b81a7395464b5a6d89cbbf464e1fc06f690c87eb711d649b3214364736f6c63430008010033a26469706673582212201d63ac4ea23a0edaa311d7dd3d5cb84fdf845fe1013263d851bc5f1429bfa78564736f6c63430008010033"; + "0x60806040523480156200001157600080fd5b50604051620040903803806200409083398101604081905262000034916200028c565b6200004862000042620000a3565b620000a7565b600180546001600160a01b0319166001600160a01b0388161790556200006f8585620000f7565b6200007b838362000177565b6001600160a01b038116331462000097576200009781620001eb565b505050505050620003b7565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200010162000235565b6040805180820182526001600160a01b0384168082526020909101839052600280546001600160a01b03191690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f250920079906200016b9042908590859062000382565b60405180910390a15050565b6200018162000235565b6040805180820182526001600160a01b0384168082526020909101839052600480546001600160a01b03191690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb89906200016b9042908590859062000382565b620001f562000235565b6001600160a01b038116620002275760405162461bcd60e51b81526004016200021e9062000307565b60405180910390fd5b6200023281620000a7565b50565b6200023f620000a3565b6001600160a01b0316620002526200027d565b6001600160a01b0316146200027b5760405162461bcd60e51b81526004016200021e906200034d565b565b6000546001600160a01b031690565b60008060008060008060c08789031215620002a5578182fd5b8651620002b281620003a1565b6020880151909650620002c581620003a1565b604088015160608901519196509450620002df81620003a1565b608088015160a08901519194509250620002f981620003a1565b809150509295509295509295565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b6001600160a01b03811681146200023257600080fd5b613cc980620003c76000396000f3fe60806040523480156200001157600080fd5b5060043610620000cf5760003560e01c8063b0a87ac11162000081578063d03ffefb1162000063578063d03ffefb146200016b578063edeecdd31462000175578063f2fde38b146200018c57620000cf565b8063b0a87ac1146200014a578063b628a33f146200015457620000cf565b80638c43b41111620000b75780638c43b41114620000f75780638c53c9bd146200010e5780638da5cb5b146200013157620000cf565b8062732e3014620000d4578063715018a614620000ed575b600080fd5b620000eb620000e536600462000c93565b620001a3565b005b620000eb620001f4565b620000eb6200010836600462000cd1565b6200020c565b62000118620002b1565b6040516200012892919062000fc7565b60405180910390f35b6200013b620002d3565b60405162000128919062000ea4565b6200013b620002ef565b6200013b6200016536600462000cff565b6200030b565b62000118620004c7565b620000eb6200018636600462000cd1565b620004e9565b620000eb6200019d36600462000c93565b62000582565b620001ad620005f3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b620001fe620005f3565b6200020a60006200066d565b565b62000216620005f3565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556005829055517f013c800b1a136f9798a25e471501a7b824156d1e9cba8439821c5a41adf2fb8990620002a59042908590859062001292565b60405180910390a15050565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60408051808201825260025473ffffffffffffffffffffffffffffffffffffffff9081168252600354602080840191909152835180850185526004548316815260055481830152845160e08101865233815263ffffffff88169281019290925289831682860152606082018990526001548316608083015291871660a082015284151560c0820152925160009384938c938c9391929091620003ad9062000b99565b620003bd95949392919062001002565b604051809103906000f080158015620003da573d6000803e3d6000fd5b506040805180820190915260025473ffffffffffffffffffffffffffffffffffffffff168152600354602082015290915062000418903383620006e2565b7f6b2fd076e791d7e0318fa62bf6e275ebe9ff601badea3d9bfdc43c02317d1119818a8a8a8a8a600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260010154600460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460010154338f604051620004b39c9b9a9998979695949392919062000f1d565b60405180910390a198975050505050505050565b60025460035473ffffffffffffffffffffffffffffffffffffffff9091169082565b620004f3620005f3565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff84168082526020909101839052600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556003829055517f35c5e8a6f8bed2c61a2eb1996d117b1b96192314c0d4ca7cd96360f25092007990620002a59042908590859062001292565b6200058c620005f3565b73ffffffffffffffffffffffffffffffffffffffff8116620005e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc90620010d8565b60405180910390fd5b620005f0816200066d565b50565b620005fd620006ff565b73ffffffffffffffffffffffffffffffffffffffff166200061d620002d3565b73ffffffffffffffffffffffffffffffffffffffff16146200020a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc9062001192565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620006ee838362000703565b620006fa838262000832565b505050565b3390565b6020820151156200082e5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e9062000768908590309060040162000ec5565b60206040518083038186803b1580156200078157600080fd5b505afa15801562000796573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007bc919062000dd2565b90508260200151811015620007ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc90620011c7565b60208301518351620006fa9173ffffffffffffffffffffffffffffffffffffffff90911690849030906200086a565b5050565b6020820151156200082e57602082015182516200082e9173ffffffffffffffffffffffffffffffffffffffff90911690839062000917565b62000911846323b872dd60e01b8585856040516024016200088e9392919062000eec565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000939565b50505050565b620006fa8363a9059cbb60e01b84846040516024016200088e92919062000fc7565b60006200099d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620009f79092919063ffffffff16565b805190915015620006fa5780806020019051810190620009be919062000cb2565b620006fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc9062001235565b606062000a08848460008562000a12565b90505b9392505050565b60608247101562000a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc9062001135565b62000a5c8562000b21565b62000a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc90620011fe565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405162000ac0919062000e86565b60006040518083038185875af1925050503d806000811462000aff576040519150601f19603f3d011682016040523d82523d6000602084013e62000b04565b606091505b509150915062000b1682828662000b41565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81163b15155b919050565b6060831562000b5257508162000a0b565b82511562000b635782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc919062000fed565b612945806200134f83390190565b600067ffffffffffffffff8084111562000bc55762000bc5620012ed565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171562000c0e5762000c0e620012ed565b8160405280935085815286868601111562000c2857600080fd5b858560208301376000602087830101525050509392505050565b803562000b3c816200131c565b803562000b3c816200133f565b600082601f83011262000c6d578081fd5b62000a0b8383356020850162000ba7565b803563ffffffff8116811462000b3c57600080fd5b60006020828403121562000ca5578081fd5b813562000a0b816200131c565b60006020828403121562000cc4578081fd5b815162000a0b816200133f565b6000806040838503121562000ce4578081fd5b823562000cf1816200131c565b946020939093013593505050565b600080600080600080600060e0888a03121562000d1a578283fd5b873567ffffffffffffffff8082111562000d32578485fd5b818a0191508a601f83011262000d46578485fd5b62000d578b83356020850162000ba7565b985060208a013591508082111562000d6d578485fd5b5062000d7c8a828b0162000c5c565b96505062000d8d6040890162000c42565b94506060880135935062000da46080890162000c42565b925062000db460a0890162000c7e565b915062000dc460c0890162000c4f565b905092959891949750929550565b60006020828403121562000de4578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b15159052565b6000815180845262000e25816020860160208601620012be565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b63ffffffff169052565b6000825162000e9a818460208701620012be565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff808f168352610180602084015262000f5161018084018f62000e0b565b838103604085015262000f65818f62000e0b565b925050808c1660608401528a6080840152808a1660a084015280891660c08401528760e0840152808716610100840152856101208401528085166101408401525062000fb661016083018462000e7c565b9d9c50505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b60006020825262000a0b602083018462000e0b565b60006101a0808352620010188184018962000e0b565b905082810360208401526200102e818862000e0b565b91505062001040604083018662000e57565b6200104f608083018562000e57565b825173ffffffffffffffffffffffffffffffffffffffff90811660c0840152602084015163ffffffff1660e084015260408401518116610100840152606084015161012084015260808401511661014083015260a0830151620010b761016084018262000deb565b5060c0830151620010cd61018084018262000e05565b509695505050505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b92835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b60005b83811015620012db578181015183820152602001620012c1565b83811115620009115750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114620005f057600080fd5b8015158114620005f057600080fdfe60806040523480156200001157600080fd5b5060405162002945380380620029458339810160408190526200003491620003b9565b8060c0015180156200005057506000816020015163ffffffff16115b15620000795760405162461bcd60e51b8152600401620000709062000487565b60405180910390fd5b84516200008e90600190602088019062000187565b508351620000a490600290602087019062000187565b506040810151600380546001600160a01b03199081166001600160a01b03938416179091556060830151600455608083015160058054831691841691909117905560a083015160068054855160008054861691871691909117905587516008805486169187169190911790556020978801516009558651600a8054861691871691909117905595870151600b55600c805460ff191690559584015160c0909401519490911691161763ffffffff60a01b1916600160a01b63ffffffff909216919091021760ff60c01b1916600160c01b91151591909102179055506200059e9050565b828054620001959062000532565b90600052602060002090601f016020900481019282620001b9576000855562000204565b82601f10620001d457805160ff191683800117855562000204565b8280016001018555821562000204579182015b8281111562000204578251825591602001919060010190620001e7565b506200021292915062000216565b5090565b5b8082111562000212576000815560010162000217565b60006001600160401b038311156200024957620002496200056f565b60206200025f601f8501601f19168201620004ff565b91508382528484840111156200027457600080fd5b60005b84811015620002925783810151838201830152810162000277565b84811115620002a45760008286850101525b50509392505050565b8051620002ba8162000585565b919050565b80518015158114620002ba57600080fd5b600060408284031215620002e2578081fd5b620002ee6040620004ff565b90508151620002fd8162000585565b808252506020820151602082015292915050565b600060e0828403121562000323578081fd5b6200032f60e0620004ff565b905081516200033e8162000585565b8152602082015163ffffffff811681146200035857600080fd5b60208201526200036b60408301620002ad565b6040820152606082015160608201526200038860808301620002ad565b60808201526200039b60a08301620002ad565b60a0820152620003ae60c08301620002bf565b60c082015292915050565b60008060008060006101a08688031215620003d2578081fd5b85516001600160401b0380821115620003e9578283fd5b818801915088601f830112620003fd578283fd5b6200040e898351602085016200022d565b9650602088015191508082111562000424578283fd5b508601601f8101881362000436578182fd5b62000447888251602084016200022d565b945050620004598760408801620002d0565b92506200046a8760808801620002d0565b91506200047b8760c0880162000311565b90509295509295909350565b60208082526052908201527f4552524f523a2043616e27742063726561746520612077686974654c6973746560408201527f642071756573742077697468206d617820706c61796572732067726561746572606082015271207468616e20302028696e66696e6974792960701b608082015260a00190565b604051601f8201601f191681016001600160401b03811182821017156200052a576200052a6200056f565b604052919050565b6002810460018216806200054757607f821691505b602082108114156200056957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200059b57600080fd5b50565b61239780620005ae6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638b5b9ccc116100cd578063d03ffefb11610081578063e492814f11610066578063e492814f146102a6578063f294cf38146102b9578063f7c618c1146102c15761016c565b8063d03ffefb14610289578063e0c23423146102915761016c565b8063a888c2cd116100b2578063a888c2cd1461024c578063b0a87ac11461026e578063b434151c146102765761016c565b80638b5b9ccc146102215780638c53c9bd146102365761016c565b8063579ca2c911610124578063775b9c1311610109578063775b9c13146101f35780637ceae3101461020657806385c99e2b1461020e5761016c565b8063579ca2c9146101d65780636c3a4cce146101de5761016c565b8063310a1ee311610155578063310a1ee3146101a457806348d6cb53146101b95780634c2412a2146101c15761016c565b8063151dfb06146101715780632f17b18214610186575b600080fd5b61018461017f3660046118d8565b6102c9565b005b61018e6105fd565b60405161019b9190611c4f565b60405180910390f35b6101ac610622565b60405161019b919061217f565b61018e610628565b6101c9610631565b60405161019b9190612188565b610184610655565b6101e661081e565b60405161019b9190611b7b565b6101846102013660046118f2565b61083a565b6101e6610938565b61018e61021c3660046118d8565b610954565b61022961098a565b60405161019b9190611c1a565b61023e6109f9565b60405161019b929190611bf4565b61025f61025a366004611a95565b610a1b565b60405161019b93929190611c6d565b6101e6610af4565b6101846102843660046119bc565b610b10565b61023e610e8d565b610299610eaf565b60405161019b9190611c5a565b6101846102b43660046118d8565b610f3d565b610299611207565b6101e6611214565b6006547801000000000000000000000000000000000000000000000000900460ff161561032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611dd0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610366575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60006103a782611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d99565b600d805461041390600190612225565b8154811061044a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106104aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d80548061052a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b54918101919091526105c090836112f8565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb60715555417582426040516105f1929190611bf4565b60405180910390a15050565b6006547801000000000000000000000000000000000000000000000000900460ff1681565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b600454421015610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e8a565b600c5460ff16610703576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff908116825260095460208301526106d792166112f8565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061075a903090600401611b7b565b60206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190611aad565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff918216911614156107f157600d54600b546107ed916107e6916121e8565b8290611331565b9150505b60065460035461081b9173ffffffffffffffffffffffffffffffffffffffff918216911683611357565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f1e565b6006547801000000000000000000000000000000000000000000000000900460ff1615156001146108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ca8565b80516108fb90600d906020840190611796565b507ff13454c9f44194d5e5e96ac708639b22a3cadb91d2a4ea97870cf94b5dbd5bad814260405161092d929190611c2d565b60405180910390a150565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b600061095f82611230565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156109ef57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109c4575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b60078181548110610a2b57600080fd5b9060005260206000209060030201600091509050806000018054610a4e90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90612268565b8015610ac75780601f10610a9c57610100808354040283529160200191610ac7565b820191906000526020600020905b815481529060010190602001808311610aaa57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fb2565b8351610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612057565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610bf0903090600401611b7b565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611aad565b90508115610cd65760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610c8957600954600090610c7f908390611331565b9450610c8d915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610cd657600d54600b54600091610cd191610cca91906121e8565b8590611331565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610d4c576000610d088285611331565b915050600860010154811015610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d3c565b505b8215610d7657600354610d769073ffffffffffffffffffffffffffffffffffffffff168585611357565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610df49284920190611820565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610e7e90879087908790611c6d565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610ebc90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee890612268565b8015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b505050505081565b6006547801000000000000000000000000000000000000000000000000900460ff1615610f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ec1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610fd1575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60065474010000000000000000000000000000000000000000900463ffffffff1615806110565750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f7b565b60045442106110c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d05565b60006110d282611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461112d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229061208e565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b5460208201526111659033306113fd565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105f19084904290611bf4565b60018054610ebc90612268565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156112d0578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061128f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156112be579050610985565b806112c8816122bc565b915050611234565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561132d576020820151825161132d9173ffffffffffffffffffffffffffffffffffffffff909116908390611357565b5050565b6000808383111561134757506000905080611350565b50600190508183035b9250929050565b6113f88363a9059cbb60e01b8484604051602401611376929190611bf4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611411565b505050565b61140783836114c7565b6113f883826112f8565b6000611473826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166115e69092919063ffffffff16565b8051909150156113f8578080602001905181019061149191906119a0565b6113f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610322906120c5565b60208201511561132d5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906115299085903090600401611b9c565b60206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190611aad565b905082602001518110156115b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fe9565b602083015183516113f89173ffffffffffffffffffffffffffffffffffffffff90911690849030906115ff565b60606115f58484600085611626565b90505b9392505050565b611620846323b872dd60e01b85858560405160240161137693929190611bc3565b50505050565b606082471015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e2d565b61166b85611727565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612020565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116ca9190611b5f565b60006040518083038185875af1925050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b509150915061171c828286611743565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b606083156117525750816115f8565b8251156117625782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229190611c5a565b828054828255906000526020600020908101928215611810579160200282015b8281111561181057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906117b6565b5061181c929150611894565b5090565b82805461182c90612268565b90600052602060002090601f01602090048101928261184e5760008555611810565b82601f1061186757805160ff1916838001178555611810565b82800160010185558215611810579182015b82811115611810578251825591602001919060010190611879565b5b8082111561181c5760008155600101611895565b803573ffffffffffffffffffffffffffffffffffffffff8116811461098557600080fd5b803561098581612353565b6000602082840312156118e9578081fd5b6115f8826118a9565b60006020808385031215611904578182fd5b823567ffffffffffffffff8082111561191b578384fd5b818501915085601f83011261192e578384fd5b81358181111561194057611940612324565b8381029150611950848301612199565b8181528481019084860184860187018a101561196a578788fd5b8795505b838610156119935761197f816118a9565b83526001959095019491860191860161196e565b5098975050505050505050565b6000602082840312156119b1578081fd5b81516115f881612353565b600080600080608085870312156119d1578283fd5b843567ffffffffffffffff808211156119e8578485fd5b818701915087601f8301126119fb578485fd5b8135602082821115611a0f57611a0f612324565b611a3f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612199565b92508183528981838601011115611a54578687fd5b818185018285013786818385010152829750611a71818a016118a9565b96505050505060408501359150611a8a606086016118cd565b905092959194509250565b600060208284031215611aa6578081fd5b5035919050565b600060208284031215611abe578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611b0a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611ad8565b509495945050505050565b60008151808452611b2d81602086016020860161223c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251611b7181846020870161223c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082526115f86020830184611ac5565b600060408252611c406040830185611ac5565b90508260208301529392505050565b901515815260200190565b6000602082526115f86020830184611b15565b600060608252611c806060830186611b15565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b6020808252603d908201527f4552524f523a2043616e27742073657420746865207768697465206c6973742060408201527f746f2061206e6f6e2d77686974656c697374656420636f6e7472616374000000606082015260800190565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526027908201527f4552524f523a2063616e277420756e706c617920612077686974656c6973746560408201527f6420717565737400000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b60208082526037908201527f4552524f523a2043616e27742073656c6620726567697374657220616e64207060408201527f6c617920612077686974656c6973746564205175657374000000000000000000606082015260800190565b60208082526023908201527f4f6e6c792063726561746f722063616e2063616c6c20746869732066756e637460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121e0576121e0612324565b604052919050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612220576122206122f5565b500290565b600082821015612237576122376122f5565b500390565b60005b8381101561225757818101518382015260200161223f565b838111156116205750506000910152565b60028104600182168061227c57607f821691505b602082108114156122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ee576122ee6122f5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461081b57600080fdfea2646970667358221220c8e6bafcee0fadc58dce6bcbd4f18016b1c4a44c8809260d651c7d26d6581f2564736f6c63430008010033a26469706673582212208adacfc23f72a84c630017727e8e660ae802f7f59ef18db9aa4a97c847f5524b64736f6c63430008010033"; diff --git a/packages/hardhat/typechain/factories/Quest__factory.ts b/packages/hardhat/typechain/factories/Quest__factory.ts index f1d50901..1a17c4c7 100644 --- a/packages/hardhat/typechain/factories/Quest__factory.ts +++ b/packages/hardhat/typechain/factories/Quest__factory.ts @@ -16,58 +16,50 @@ export class Quest__factory extends ContractFactory { deploy( _questTitle: string, _questDetailsRef: BytesLike, - _rewardToken: string, - _expireTime: BigNumberish, - _aragonGovernAddress: string, - _fundsRecoveryAddress: string, _createDeposit: { token: string; amount: BigNumberish }, _playDeposit: { token: string; amount: BigNumberish }, - _questCreator: string, - _maxPlayers: BigNumberish, - _isWhiteList: boolean, + _questParam: { + questCreator: string; + maxPlayers: BigNumberish; + rewardToken: string; + expireTime: BigNumberish; + aragonGovernAddress: string; + fundsRecoveryAddress: string; + isWhiteList: boolean; + }, overrides?: Overrides ): Promise { return super.deploy( _questTitle, _questDetailsRef, - _rewardToken, - _expireTime, - _aragonGovernAddress, - _fundsRecoveryAddress, _createDeposit, _playDeposit, - _questCreator, - _maxPlayers, - _isWhiteList, + _questParam, overrides || {} ) as Promise; } getDeployTransaction( _questTitle: string, _questDetailsRef: BytesLike, - _rewardToken: string, - _expireTime: BigNumberish, - _aragonGovernAddress: string, - _fundsRecoveryAddress: string, _createDeposit: { token: string; amount: BigNumberish }, _playDeposit: { token: string; amount: BigNumberish }, - _questCreator: string, - _maxPlayers: BigNumberish, - _isWhiteList: boolean, + _questParam: { + questCreator: string; + maxPlayers: BigNumberish; + rewardToken: string; + expireTime: BigNumberish; + aragonGovernAddress: string; + fundsRecoveryAddress: string; + isWhiteList: boolean; + }, overrides?: Overrides ): TransactionRequest { return super.getDeployTransaction( _questTitle, _questDetailsRef, - _rewardToken, - _expireTime, - _aragonGovernAddress, - _fundsRecoveryAddress, _createDeposit, _playDeposit, - _questCreator, - _maxPlayers, - _isWhiteList, + _questParam, overrides || {} ); } @@ -95,26 +87,6 @@ const _abi = [ name: "_questDetailsRef", type: "bytes", }, - { - internalType: "contract IERC20", - name: "_rewardToken", - type: "address", - }, - { - internalType: "uint256", - name: "_expireTime", - type: "uint256", - }, - { - internalType: "address", - name: "_aragonGovernAddress", - type: "address", - }, - { - internalType: "address payable", - name: "_fundsRecoveryAddress", - type: "address", - }, { components: [ { @@ -150,19 +122,46 @@ const _abi = [ type: "tuple", }, { - internalType: "address", - name: "_questCreator", - type: "address", - }, - { - internalType: "uint32", - name: "_maxPlayers", - type: "uint32", - }, - { - internalType: "bool", - name: "_isWhiteList", - type: "bool", + components: [ + { + internalType: "address", + name: "questCreator", + type: "address", + }, + { + internalType: "uint32", + name: "maxPlayers", + type: "uint32", + }, + { + internalType: "contract IERC20", + name: "rewardToken", + type: "address", + }, + { + internalType: "uint256", + name: "expireTime", + type: "uint256", + }, + { + internalType: "address", + name: "aragonGovernAddress", + type: "address", + }, + { + internalType: "address payable", + name: "fundsRecoveryAddress", + type: "address", + }, + { + internalType: "bool", + name: "isWhiteList", + type: "bool", + }, + ], + internalType: "struct Models.QuestParam", + name: "_questParam", + type: "tuple", }, ], stateMutability: "nonpayable", @@ -554,4 +553,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b50604051620028ec380380620028ec83398101604081905262000034916200031c565b60008263ffffffff16118015620000485750805b15620000715760405162461bcd60e51b815260040162000068906200042e565b60405180910390fd5b8a51620000869060019060208e01906200016c565b5089516200009c9060029060208d01906200016c565b50600380546001600160a01b03199081166001600160a01b039b8c1617909155600498909855600580548916978a169790971790965560068054600080548a16948b16949094179093558451600880548a16918b169190911790556020948501516009558351600a80548a16918b169190911790559290930151600b55600c805460ff19169055909416919094161763ffffffff60a01b1916600160a01b63ffffffff909416939093029290921760ff60c01b1916600160c01b9215159290920291909117905550620005459050565b8280546200017a90620004d9565b90600052602060002090601f0160209004810192826200019e5760008555620001e9565b82601f10620001b957805160ff1916838001178555620001e9565b82800160010185558215620001e9579182015b82811115620001e9578251825591602001919060010190620001cc565b50620001f7929150620001fb565b5090565b5b80821115620001f75760008155600101620001fc565b80516200021f816200052c565b919050565b805180151581146200021f57600080fd5b600082601f83011262000246578081fd5b81516001600160401b0381111562000262576200026262000516565b602062000278601f8301601f19168201620004a6565b82815285828487010111156200028c578384fd5b835b83811015620002ab5785810183015182820184015282016200028e565b83811115620002bc57848385840101525b5095945050505050565b600060408284031215620002d8578081fd5b620002e46040620004a6565b90508151620002f3816200052c565b808252506020820151602082015292915050565b805163ffffffff811681146200021f57600080fd5b60008060008060008060008060008060006101a08c8e0312156200033e578687fd5b8b516001600160401b0381111562000354578788fd5b620003628e828f0162000235565b60208e0151909c5090506001600160401b0381111562000380578788fd5b6200038e8e828f0162000235565b9a50506200039f60408d0162000212565b985060608c01519750620003b660808d0162000212565b9650620003c660a08d0162000212565b9550620003d78d60c08e01620002c6565b9450620003e98d6101008e01620002c6565b9350620003fa6101408d0162000212565b92506200040b6101608d0162000307565b91506200041c6101808d0162000224565b90509295989b509295989b9093969950565b60208082526052908201527f4552524f523a2043616e27742063726561746520612077686974654c6973746560408201527f642071756573742077697468206d617820706c61796572732067726561746572606082015271207468616e20302028696e66696e6974792960701b608082015260a00190565b604051601f8201601f191681016001600160401b0381118282101715620004d157620004d162000516565b604052919050565b600281046001821680620004ee57607f821691505b602082108114156200051057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200054257600080fd5b50565b61239780620005556000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638b5b9ccc116100cd578063d03ffefb11610081578063e492814f11610066578063e492814f146102a6578063f294cf38146102b9578063f7c618c1146102c15761016c565b8063d03ffefb14610289578063e0c23423146102915761016c565b8063a888c2cd116100b2578063a888c2cd1461024c578063b0a87ac11461026e578063b434151c146102765761016c565b80638b5b9ccc146102215780638c53c9bd146102365761016c565b8063579ca2c911610124578063775b9c1311610109578063775b9c13146101f35780637ceae3101461020657806385c99e2b1461020e5761016c565b8063579ca2c9146101d65780636c3a4cce146101de5761016c565b8063310a1ee311610155578063310a1ee3146101a457806348d6cb53146101b95780634c2412a2146101c15761016c565b8063151dfb06146101715780632f17b18214610186575b600080fd5b61018461017f3660046118d8565b6102c9565b005b61018e6105fd565b60405161019b9190611c4f565b60405180910390f35b6101ac610622565b60405161019b919061217f565b61018e610628565b6101c9610631565b60405161019b9190612188565b610184610655565b6101e661081e565b60405161019b9190611b7b565b6101846102013660046118f2565b61083a565b6101e6610938565b61018e61021c3660046118d8565b610954565b61022961098a565b60405161019b9190611c1a565b61023e6109f9565b60405161019b929190611bf4565b61025f61025a366004611a95565b610a1b565b60405161019b93929190611c6d565b6101e6610af4565b6101846102843660046119bc565b610b10565b61023e610e8d565b610299610eaf565b60405161019b9190611c5a565b6101846102b43660046118d8565b610f3d565b610299611207565b6101e6611214565b6006547801000000000000000000000000000000000000000000000000900460ff161561032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611dd0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610366575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60006103a782611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d99565b600d805461041390600190612225565b8154811061044a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106104aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d80548061052a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b54918101919091526105c090836112f8565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb60715555417582426040516105f1929190611bf4565b60405180910390a15050565b6006547801000000000000000000000000000000000000000000000000900460ff1681565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b600454421015610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e8a565b600c5460ff16610703576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff908116825260095460208301526106d792166112f8565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061075a903090600401611b7b565b60206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190611aad565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff918216911614156107f157600d54600b546107ed916107e6916121e8565b8290611331565b9150505b60065460035461081b9173ffffffffffffffffffffffffffffffffffffffff918216911683611357565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f1e565b6006547801000000000000000000000000000000000000000000000000900460ff1615156001146108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ca8565b80516108fb90600d906020840190611796565b507ff13454c9f44194d5e5e96ac708639b22a3cadb91d2a4ea97870cf94b5dbd5bad814260405161092d929190611c2d565b60405180910390a150565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b600061095f82611230565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156109ef57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109c4575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b60078181548110610a2b57600080fd5b9060005260206000209060030201600091509050806000018054610a4e90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90612268565b8015610ac75780601f10610a9c57610100808354040283529160200191610ac7565b820191906000526020600020905b815481529060010190602001808311610aaa57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fb2565b8351610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612057565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610bf0903090600401611b7b565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611aad565b90508115610cd65760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610c8957600954600090610c7f908390611331565b9450610c8d915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610cd657600d54600b54600091610cd191610cca91906121e8565b8590611331565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610d4c576000610d088285611331565b915050600860010154811015610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d3c565b505b8215610d7657600354610d769073ffffffffffffffffffffffffffffffffffffffff168585611357565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610df49284920190611820565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610e7e90879087908790611c6d565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610ebc90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee890612268565b8015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b505050505081565b6006547801000000000000000000000000000000000000000000000000900460ff1615610f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ec1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610fd1575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60065474010000000000000000000000000000000000000000900463ffffffff1615806110565750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f7b565b60045442106110c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d05565b60006110d282611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461112d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229061208e565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b5460208201526111659033306113fd565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105f19084904290611bf4565b60018054610ebc90612268565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156112d0578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061128f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156112be579050610985565b806112c8816122bc565b915050611234565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561132d576020820151825161132d9173ffffffffffffffffffffffffffffffffffffffff909116908390611357565b5050565b6000808383111561134757506000905080611350565b50600190508183035b9250929050565b6113f88363a9059cbb60e01b8484604051602401611376929190611bf4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611411565b505050565b61140783836114c7565b6113f883826112f8565b6000611473826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166115e69092919063ffffffff16565b8051909150156113f8578080602001905181019061149191906119a0565b6113f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610322906120c5565b60208201511561132d5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906115299085903090600401611b9c565b60206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190611aad565b905082602001518110156115b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fe9565b602083015183516113f89173ffffffffffffffffffffffffffffffffffffffff90911690849030906115ff565b60606115f58484600085611626565b90505b9392505050565b611620846323b872dd60e01b85858560405160240161137693929190611bc3565b50505050565b606082471015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e2d565b61166b85611727565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612020565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116ca9190611b5f565b60006040518083038185875af1925050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b509150915061171c828286611743565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b606083156117525750816115f8565b8251156117625782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229190611c5a565b828054828255906000526020600020908101928215611810579160200282015b8281111561181057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906117b6565b5061181c929150611894565b5090565b82805461182c90612268565b90600052602060002090601f01602090048101928261184e5760008555611810565b82601f1061186757805160ff1916838001178555611810565b82800160010185558215611810579182015b82811115611810578251825591602001919060010190611879565b5b8082111561181c5760008155600101611895565b803573ffffffffffffffffffffffffffffffffffffffff8116811461098557600080fd5b803561098581612353565b6000602082840312156118e9578081fd5b6115f8826118a9565b60006020808385031215611904578182fd5b823567ffffffffffffffff8082111561191b578384fd5b818501915085601f83011261192e578384fd5b81358181111561194057611940612324565b8381029150611950848301612199565b8181528481019084860184860187018a101561196a578788fd5b8795505b838610156119935761197f816118a9565b83526001959095019491860191860161196e565b5098975050505050505050565b6000602082840312156119b1578081fd5b81516115f881612353565b600080600080608085870312156119d1578283fd5b843567ffffffffffffffff808211156119e8578485fd5b818701915087601f8301126119fb578485fd5b8135602082821115611a0f57611a0f612324565b611a3f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612199565b92508183528981838601011115611a54578687fd5b818185018285013786818385010152829750611a71818a016118a9565b96505050505060408501359150611a8a606086016118cd565b905092959194509250565b600060208284031215611aa6578081fd5b5035919050565b600060208284031215611abe578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611b0a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611ad8565b509495945050505050565b60008151808452611b2d81602086016020860161223c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251611b7181846020870161223c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082526115f86020830184611ac5565b600060408252611c406040830185611ac5565b90508260208301529392505050565b901515815260200190565b6000602082526115f86020830184611b15565b600060608252611c806060830186611b15565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b6020808252603d908201527f4552524f523a2043616e27742073657420746865207768697465206c6973742060408201527f746f2061206e6f6e2d77686974656c697374656420636f6e7472616374000000606082015260800190565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526027908201527f4552524f523a2063616e277420756e706c617920612077686974656c6973746560408201527f6420717565737400000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b60208082526037908201527f4552524f523a2043616e27742073656c6620726567697374657220616e64207060408201527f6c617920612077686974656c6973746564205175657374000000000000000000606082015260800190565b60208082526023908201527f4f6e6c792063726561746f722063616e2063616c6c20746869732066756e637460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121e0576121e0612324565b604052919050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612220576122206122f5565b500290565b600082821015612237576122376122f5565b500390565b60005b8381101561225757818101518382015260200161223f565b838111156116205750506000910152565b60028104600182168061227c57607f821691505b602082108114156122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ee576122ee6122f5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461081b57600080fdfea2646970667358221220c5b6392a692b81a7395464b5a6d89cbbf464e1fc06f690c87eb711d649b3214364736f6c63430008010033"; + "0x60806040523480156200001157600080fd5b5060405162002945380380620029458339810160408190526200003491620003b9565b8060c0015180156200005057506000816020015163ffffffff16115b15620000795760405162461bcd60e51b8152600401620000709062000487565b60405180910390fd5b84516200008e90600190602088019062000187565b508351620000a490600290602087019062000187565b506040810151600380546001600160a01b03199081166001600160a01b03938416179091556060830151600455608083015160058054831691841691909117905560a083015160068054855160008054861691871691909117905587516008805486169187169190911790556020978801516009558651600a8054861691871691909117905595870151600b55600c805460ff191690559584015160c0909401519490911691161763ffffffff60a01b1916600160a01b63ffffffff909216919091021760ff60c01b1916600160c01b91151591909102179055506200059e9050565b828054620001959062000532565b90600052602060002090601f016020900481019282620001b9576000855562000204565b82601f10620001d457805160ff191683800117855562000204565b8280016001018555821562000204579182015b8281111562000204578251825591602001919060010190620001e7565b506200021292915062000216565b5090565b5b8082111562000212576000815560010162000217565b60006001600160401b038311156200024957620002496200056f565b60206200025f601f8501601f19168201620004ff565b91508382528484840111156200027457600080fd5b60005b84811015620002925783810151838201830152810162000277565b84811115620002a45760008286850101525b50509392505050565b8051620002ba8162000585565b919050565b80518015158114620002ba57600080fd5b600060408284031215620002e2578081fd5b620002ee6040620004ff565b90508151620002fd8162000585565b808252506020820151602082015292915050565b600060e0828403121562000323578081fd5b6200032f60e0620004ff565b905081516200033e8162000585565b8152602082015163ffffffff811681146200035857600080fd5b60208201526200036b60408301620002ad565b6040820152606082015160608201526200038860808301620002ad565b60808201526200039b60a08301620002ad565b60a0820152620003ae60c08301620002bf565b60c082015292915050565b60008060008060006101a08688031215620003d2578081fd5b85516001600160401b0380821115620003e9578283fd5b818801915088601f830112620003fd578283fd5b6200040e898351602085016200022d565b9650602088015191508082111562000424578283fd5b508601601f8101881362000436578182fd5b62000447888251602084016200022d565b945050620004598760408801620002d0565b92506200046a8760808801620002d0565b91506200047b8760c0880162000311565b90509295509295909350565b60208082526052908201527f4552524f523a2043616e27742063726561746520612077686974654c6973746560408201527f642071756573742077697468206d617820706c61796572732067726561746572606082015271207468616e20302028696e66696e6974792960701b608082015260a00190565b604051601f8201601f191681016001600160401b03811182821017156200052a576200052a6200056f565b604052919050565b6002810460018216806200054757607f821691505b602082108114156200056957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200059b57600080fd5b50565b61239780620005ae6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638b5b9ccc116100cd578063d03ffefb11610081578063e492814f11610066578063e492814f146102a6578063f294cf38146102b9578063f7c618c1146102c15761016c565b8063d03ffefb14610289578063e0c23423146102915761016c565b8063a888c2cd116100b2578063a888c2cd1461024c578063b0a87ac11461026e578063b434151c146102765761016c565b80638b5b9ccc146102215780638c53c9bd146102365761016c565b8063579ca2c911610124578063775b9c1311610109578063775b9c13146101f35780637ceae3101461020657806385c99e2b1461020e5761016c565b8063579ca2c9146101d65780636c3a4cce146101de5761016c565b8063310a1ee311610155578063310a1ee3146101a457806348d6cb53146101b95780634c2412a2146101c15761016c565b8063151dfb06146101715780632f17b18214610186575b600080fd5b61018461017f3660046118d8565b6102c9565b005b61018e6105fd565b60405161019b9190611c4f565b60405180910390f35b6101ac610622565b60405161019b919061217f565b61018e610628565b6101c9610631565b60405161019b9190612188565b610184610655565b6101e661081e565b60405161019b9190611b7b565b6101846102013660046118f2565b61083a565b6101e6610938565b61018e61021c3660046118d8565b610954565b61022961098a565b60405161019b9190611c1a565b61023e6109f9565b60405161019b929190611bf4565b61025f61025a366004611a95565b610a1b565b60405161019b93929190611c6d565b6101e6610af4565b6101846102843660046119bc565b610b10565b61023e610e8d565b610299610eaf565b60405161019b9190611c5a565b6101846102b43660046118d8565b610f3d565b610299611207565b6101e6611214565b6006547801000000000000000000000000000000000000000000000000900460ff161561032b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611dd0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610366575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60006103a782611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1415610403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d99565b600d805461041390600190612225565b8154811061044a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260209091200154600d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106104aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d80548061052a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082815260209081902082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b54918101919091526105c090836112f8565b7fc4a67a0877d477de99d765a3d9f48abfbe6181dff4727d68c3cb60715555417582426040516105f1929190611bf4565b60405180910390a15050565b6006547801000000000000000000000000000000000000000000000000900460ff1681565b60045481565b600c5460ff1681565b60065474010000000000000000000000000000000000000000900463ffffffff1681565b600454421015610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e8a565b600c5460ff16610703576000546040805180820190915260085473ffffffffffffffffffffffffffffffffffffffff908116825260095460208301526106d792166112f8565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061075a903090600401611b7b565b60206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190611aad565b600a5460035491925073ffffffffffffffffffffffffffffffffffffffff918216911614156107f157600d54600b546107ed916107e6916121e8565b8290611331565b9150505b60065460035461081b9173ffffffffffffffffffffffffffffffffffffffff918216911683611357565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f1e565b6006547801000000000000000000000000000000000000000000000000900460ff1615156001146108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ca8565b80516108fb90600d906020840190611796565b507ff13454c9f44194d5e5e96ac708639b22a3cadb91d2a4ea97870cf94b5dbd5bad814260405161092d929190611c2d565b60405180910390a150565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b600061095f82611230565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590505b919050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156109ef57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109c4575b5050505050905090565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff9091169082565b60078181548110610a2b57600080fd5b9060005260206000209060030201600091509050806000018054610a4e90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90612268565b8015610ac75780601f10610a9c57610100808354040283529160200191610ac7565b820191906000526020600020905b815481529060010190602001808311610aaa57829003601f168201915b505050506001830154600290930154919273ffffffffffffffffffffffffffffffffffffffff1691905083565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fb2565b8351610b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612057565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190610bf0903090600401611b7b565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190611aad565b90508115610cd65760085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610c8957600954600090610c7f908390611331565b9450610c8d915050565b8092505b600a5460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610cd657600d54600b54600091610cd191610cca91906121e8565b8590611331565b945050505b60085460035473ffffffffffffffffffffffffffffffffffffffff90811691161415610d4c576000610d088285611331565b915050600860010154811015610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d3c565b505b8215610d7657600354610d769073ffffffffffffffffffffffffffffffffffffffff168585611357565b6040805160608101825286815273ffffffffffffffffffffffffffffffffffffffff86166020808301919091529181018590526007805460018101825560009190915281518051929360039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880192610df49284920190611820565b5060208201516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055604091820151600290910155517fa1c3b325aa2c115e4b244062eba2515bc5585ae5b41556be8fef399ae9fde11b90610e7e90879087908790611c6d565b60405180910390a15050505050565b60085460095473ffffffffffffffffffffffffffffffffffffffff9091169082565b60028054610ebc90612268565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee890612268565b8015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b505050505081565b6006547801000000000000000000000000000000000000000000000000900460ff1615610f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611ec1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610fd1575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612122565b60065474010000000000000000000000000000000000000000900463ffffffff1615806110565750600654600d547401000000000000000000000000000000000000000090910463ffffffff16115b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611f7b565b60045442106110c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611d05565b60006110d282611230565b9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461112d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229061208e565b60408051808201909152600a5473ffffffffffffffffffffffffffffffffffffffff168152600b5460208201526111659033306113fd565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556040517f35ec60f951b4abc8b287ab5148caf98524052482927d42e86a720cc71b8a76a1906105f19084904290611bf4565b60018054610ebc90612268565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6000805b600d548110156112d0578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061128f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156112be579050610985565b806112c8816122bc565b915050611234565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b60208201511561132d576020820151825161132d9173ffffffffffffffffffffffffffffffffffffffff909116908390611357565b5050565b6000808383111561134757506000905080611350565b50600190508183035b9250929050565b6113f88363a9059cbb60e01b8484604051602401611376929190611bf4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611411565b505050565b61140783836114c7565b6113f883826112f8565b6000611473826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166115e69092919063ffffffff16565b8051909150156113f8578080602001905181019061149191906119a0565b6113f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610322906120c5565b60208201511561132d5781516040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e906115299085903090600401611b9c565b60206040518083038186803b15801561154157600080fd5b505afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190611aad565b905082602001518110156115b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611fe9565b602083015183516113f89173ffffffffffffffffffffffffffffffffffffffff90911690849030906115ff565b60606115f58484600085611626565b90505b9392505050565b611620846323b872dd60e01b85858560405160240161137693929190611bc3565b50505050565b606082471015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290611e2d565b61166b85611727565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032290612020565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116ca9190611b5f565b60006040518083038185875af1925050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b509150915061171c828286611743565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b606083156117525750816115f8565b8251156117625782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103229190611c5a565b828054828255906000526020600020908101928215611810579160200282015b8281111561181057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906117b6565b5061181c929150611894565b5090565b82805461182c90612268565b90600052602060002090601f01602090048101928261184e5760008555611810565b82601f1061186757805160ff1916838001178555611810565b82800160010185558215611810579182015b82811115611810578251825591602001919060010190611879565b5b8082111561181c5760008155600101611895565b803573ffffffffffffffffffffffffffffffffffffffff8116811461098557600080fd5b803561098581612353565b6000602082840312156118e9578081fd5b6115f8826118a9565b60006020808385031215611904578182fd5b823567ffffffffffffffff8082111561191b578384fd5b818501915085601f83011261192e578384fd5b81358181111561194057611940612324565b8381029150611950848301612199565b8181528481019084860184860187018a101561196a578788fd5b8795505b838610156119935761197f816118a9565b83526001959095019491860191860161196e565b5098975050505050505050565b6000602082840312156119b1578081fd5b81516115f881612353565b600080600080608085870312156119d1578283fd5b843567ffffffffffffffff808211156119e8578485fd5b818701915087601f8301126119fb578485fd5b8135602082821115611a0f57611a0f612324565b611a3f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612199565b92508183528981838601011115611a54578687fd5b818185018285013786818385010152829750611a71818a016118a9565b96505050505060408501359150611a8a606086016118cd565b905092959194509250565b600060208284031215611aa6578081fd5b5035919050565b600060208284031215611abe578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611b0a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611ad8565b509495945050505050565b60008151808452611b2d81602086016020860161223c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251611b7181846020870161223c565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082526115f86020830184611ac5565b600060408252611c406040830185611ac5565b90508260208301529392505050565b901515815260200190565b6000602082526115f86020830184611b15565b600060608252611c806060830186611b15565b73ffffffffffffffffffffffffffffffffffffffff9490941660208301525060400152919050565b6020808252603d908201527f4552524f523a2043616e27742073657420746865207768697465206c6973742060408201527f746f2061206e6f6e2d77686974656c697374656420636f6e7472616374000000606082015260800190565b60208082526014908201527f4552524f523a2051756573742065787069726564000000000000000000000000604082015260600190565b60208082526027908201527f4552524f523a2053686f756c64206e6f742065786365656420616c6c6f77656460408201527f20626f756e747900000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4552524f523a20706c61796572206e6f7420696e206c69737400000000000000604082015260600190565b60208082526027908201527f4552524f523a2063616e277420756e706c617920612077686974656c6973746560408201527f6420717565737400000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f4552524f523a204e6f7420657870697265640000000000000000000000000000604082015260600190565b60208082526037908201527f4552524f523a2043616e27742073656c6620726567697374657220616e64207060408201527f6c617920612077686974656c6973746564205175657374000000000000000000606082015260800190565b60208082526023908201527f4f6e6c792063726561746f722063616e2063616c6c20746869732066756e637460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f4552524f523a204d617820706c61796572732072656163686564000000000000604082015260600190565b60208082526018908201527f4552524f523a2053656e646572206e6f7420676f7665726e0000000000000000604082015260600190565b6020808252601d908201527f4552524f52203a204465706f7369742062616420616c6c6f77616e6365000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526012908201527f4552524f523a204e6f2065766964656e63650000000000000000000000000000604082015260600190565b6020808252601c908201527f4552524f523a20506c6179657220616c72656164792065786973747300000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4552524f523a2053656e646572206e6f7420706c61796572206e6f722063726560408201527f61746f7200000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b63ffffffff91909116815260200190565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121e0576121e0612324565b604052919050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612220576122206122f5565b500290565b600082821015612237576122376122f5565b500390565b60005b8381101561225757818101518382015260200161223f565b838111156116205750506000910152565b60028104600182168061227c57607f821691505b602082108114156122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ee576122ee6122f5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b801515811461081b57600080fdfea2646970667358221220c8e6bafcee0fadc58dce6bcbd4f18016b1c4a44c8809260d651c7d26d6581f2564736f6c63430008010033"; From 27a9edd45cf2f3e58bb36bab5531959cadcf7315 Mon Sep 17 00:00:00 2001 From: Corantin Date: Tue, 27 Jun 2023 14:38:42 -0400 Subject: [PATCH 03/27] Fix ts version --- honey-quest.code-workspace | 2 +- packages/react-app/package.json | 6 +- yarn.lock | 236 ++++++++++++++++++++++++++------ 3 files changed, 196 insertions(+), 48 deletions(-) diff --git a/honey-quest.code-workspace b/honey-quest.code-workspace index a74e2c53..c48d5189 100644 --- a/honey-quest.code-workspace +++ b/honey-quest.code-workspace @@ -26,7 +26,7 @@ } ], "settings": { - "typescript.tsdk": "WebApp/node_modules/typescript/lib", + "typescript.tsdk": "WebApp\\node_modules\\typescript\\lib", "editor.defaultFormatter": "esbenp.prettier-vscode", "[solidity]": { "editor.defaultFormatter": "NomicFoundation.hardhat-solidity" diff --git a/packages/react-app/package.json b/packages/react-app/package.json index d6507082..45aaf9e0 100644 --- a/packages/react-app/package.json +++ b/packages/react-app/package.json @@ -49,11 +49,11 @@ "node-sass": "^7.0.0", "prop-types": "^15.7.2", "react": "^17.0.2", - "react-dom": "^17.0.2", "react-app-rewire-hot-loader": "^2.0.1", "react-app-rewired": "^2.1.8", "react-dev-utils": "^11.0.4", "react-device-detect": "^1.17.0", + "react-dom": "^17.0.2", "react-focus-within": "^2.0.2", "react-hot-loader": "^4.13.0", "react-icons": "^4.2.0", @@ -65,7 +65,7 @@ "s3-folder-upload": "^2.3.5", "styled-components": "^5.2.1", "tslib": "^2.3.1", - "typescript": "^4.9.4", + "typescript": "4.9.5", "urql": "1.8.2", "use-wallet": "npm:@1hive/use-wallet@1.1.2", "web3": "^1.3.5", @@ -165,4 +165,4 @@ "last 1 safari version" ] } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 60c8e3d9..f771bca5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -98,6 +98,13 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" @@ -225,6 +232,16 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" + integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== + dependencies: + "@babel/types" "^7.22.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" @@ -239,6 +256,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" @@ -310,6 +334,21 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.21.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" + integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + semver "^6.3.0" + "@babel/helper-create-regexp-features-plugin@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" @@ -366,6 +405,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + "@babel/helper-explode-assignable-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" @@ -405,6 +449,14 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -433,6 +485,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-member-expression-to-functions@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" @@ -447,6 +506,13 @@ dependencies: "@babel/types" "^7.17.0" +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" @@ -524,6 +590,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" @@ -539,6 +612,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== +"@babel/helper-plugin-utils@^7.20.2": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + "@babel/helper-remap-async-to-generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" @@ -578,6 +656,18 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-replace-supers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" + integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-simple-access@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" @@ -613,6 +703,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" @@ -634,11 +731,23 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-split-export-declaration@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" + integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" @@ -654,6 +763,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" @@ -743,6 +857,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.4.4", "@babel/parser@^7.7.0": version "7.15.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" @@ -758,6 +881,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== +"@babel/parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" + integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -1035,6 +1163,16 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@^7.21.11": + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" @@ -2123,6 +2261,15 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" +"@babel/template@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" @@ -2170,6 +2317,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" + integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" @@ -2203,6 +2366,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -5805,12 +5977,12 @@ dependencies: ts-toolbelt "^6.15.1" -"@types/react-dom@^17.0.2": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" - integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== +"@types/react-dom@17.0.2", "@types/react-dom@^17.0.2": + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.2.tgz#35654cf6c49ae162d5bc90843d5437dc38008d43" + integrity sha512-Icd9KEgdnFfJs39KyRyr0jQ7EKhq8U6CcHRMGAS45fp5qgUvxL3ujUCfWFttUK2UErqZNj97t9gsVPNAqcwoCg== dependencies: - "@types/react" "^17" + "@types/react" "*" "@types/react-router-dom@^5.3.1": version "5.3.1" @@ -5829,31 +6001,12 @@ "@types/history" "*" "@types/react" "*" -"@types/react@*", "@types/react@^17": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" - integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^15.0.0 || ^16.0.0": - version "16.14.35" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.35.tgz#9d3cf047d85aca8006c4776693124a5be90ee429" - integrity sha512-NUEiwmSS1XXtmBcsm1NyRRPYjoZF2YTE89/5QiLt5mlGffYK9FQqOKuOLuXNrjPQV04oQgaZG+Yq02ZfHoFyyg== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^17.0.2": - version "17.0.53" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab" - integrity sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw== +"@types/react@*", "@types/react@17.0.2", "@types/react@^15.0.0 || ^16.0.0", "@types/react@^17.0.2": + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" + integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" "@types/resolve@0.0.8", "@types/resolve@^0.0.8": @@ -5863,11 +6016,6 @@ dependencies: "@types/node" "*" -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -22435,7 +22583,7 @@ react-display-name@^0.2.3: resolved "https://registry.yarnpkg.com/react-display-name/-/react-display-name-0.2.5.tgz#304c7cbfb59ee40389d436e1a822c17fe27936c6" integrity sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg== -react-dom@^17.0.2: +react-dom@17.0.2, react-dom@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== @@ -22685,7 +22833,7 @@ react-wonka@^2.0.1: resolved "https://registry.yarnpkg.com/react-wonka/-/react-wonka-2.0.1.tgz#75bdf03dbad8ceb8c1066216f635f05ce2b642a5" integrity sha512-mM2UH2gnK5LLzaqVWd6JCLrB1vO3I4PN/sQZbjvzsjms4vSv+nKwelNUftM0KeC+LtTPC4GGsuxyu2XJnsCUTw== -react@^17.0.2: +react@17.0.2, react@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -24954,10 +25102,10 @@ style-to-object@^0.4.0: dependencies: inline-style-parser "0.1.1" -styled-components@^5.2.1: - version "5.3.6" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.6.tgz#27753c8c27c650bee9358e343fc927966bfd00d1" - integrity sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg== +styled-components@^5, styled-components@^5.2.1: + version "5.3.11" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" + integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" @@ -25866,6 +26014,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + typescript@^4.2.2, typescript@^4.3.4, typescript@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" @@ -25876,11 +26029,6 @@ typescript@^4.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== -typescript@^4.9.4: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== - typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" From a5d8bd663e84dab95e8016760917e6fa81e7f4b1 Mon Sep 17 00:00:00 2001 From: Corantin Date: Tue, 27 Jun 2023 14:39:31 -0400 Subject: [PATCH 04/27] Update tsconfig --- packages/react-app/tsconfig.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/react-app/tsconfig.json b/packages/react-app/tsconfig.json index b8f8d356..4b9af089 100644 --- a/packages/react-app/tsconfig.json +++ b/packages/react-app/tsconfig.json @@ -4,7 +4,11 @@ "outDir": "build/dist", "module": "esnext", "target": "es6", - "lib": ["es6", "dom", "ES2021"], + "lib": [ + "es6", + "dom", + "ES2021" + ], "sourceMap": true, "allowJs": true, "jsx": "react-jsx", @@ -27,7 +31,6 @@ "noEmit": true, "sourceRoot": "/", "inlineSources": true, - "ignoreDeprecations": "5.0" }, "exclude": [ "node_modules", @@ -41,4 +44,4 @@ "include": [ "src" ] -} +} \ No newline at end of file From 0afca90c4dac768fe044db3f323a3028834111d5 Mon Sep 17 00:00:00 2001 From: Corantin Date: Tue, 27 Jun 2023 14:46:25 -0400 Subject: [PATCH 05/27] Revert "Fix ts version" This reverts commit 27a9edd45cf2f3e58bb36bab5531959cadcf7315. --- honey-quest.code-workspace | 2 +- packages/react-app/package.json | 6 +- yarn.lock | 236 ++++++-------------------------- 3 files changed, 48 insertions(+), 196 deletions(-) diff --git a/honey-quest.code-workspace b/honey-quest.code-workspace index c48d5189..a74e2c53 100644 --- a/honey-quest.code-workspace +++ b/honey-quest.code-workspace @@ -26,7 +26,7 @@ } ], "settings": { - "typescript.tsdk": "WebApp\\node_modules\\typescript\\lib", + "typescript.tsdk": "WebApp/node_modules/typescript/lib", "editor.defaultFormatter": "esbenp.prettier-vscode", "[solidity]": { "editor.defaultFormatter": "NomicFoundation.hardhat-solidity" diff --git a/packages/react-app/package.json b/packages/react-app/package.json index 45aaf9e0..d6507082 100644 --- a/packages/react-app/package.json +++ b/packages/react-app/package.json @@ -49,11 +49,11 @@ "node-sass": "^7.0.0", "prop-types": "^15.7.2", "react": "^17.0.2", + "react-dom": "^17.0.2", "react-app-rewire-hot-loader": "^2.0.1", "react-app-rewired": "^2.1.8", "react-dev-utils": "^11.0.4", "react-device-detect": "^1.17.0", - "react-dom": "^17.0.2", "react-focus-within": "^2.0.2", "react-hot-loader": "^4.13.0", "react-icons": "^4.2.0", @@ -65,7 +65,7 @@ "s3-folder-upload": "^2.3.5", "styled-components": "^5.2.1", "tslib": "^2.3.1", - "typescript": "4.9.5", + "typescript": "^4.9.4", "urql": "1.8.2", "use-wallet": "npm:@1hive/use-wallet@1.1.2", "web3": "^1.3.5", @@ -165,4 +165,4 @@ "last 1 safari version" ] } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index f771bca5..60c8e3d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -98,13 +98,6 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" @@ -232,16 +225,6 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" - integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" @@ -256,13 +239,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" @@ -334,21 +310,6 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-class-features-plugin@^7.21.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" - integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - semver "^6.3.0" - "@babel/helper-create-regexp-features-plugin@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" @@ -405,11 +366,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - "@babel/helper-explode-assignable-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" @@ -449,14 +405,6 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -485,13 +433,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-member-expression-to-functions@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" @@ -506,13 +447,6 @@ dependencies: "@babel/types" "^7.17.0" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" @@ -590,13 +524,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" @@ -612,11 +539,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-plugin-utils@^7.20.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - "@babel/helper-remap-async-to-generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" @@ -656,18 +578,6 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-replace-supers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" - integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-simple-access@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" @@ -703,13 +613,6 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" @@ -731,23 +634,11 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" - integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-string-parser@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" @@ -763,11 +654,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" @@ -857,15 +743,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.4.4", "@babel/parser@^7.7.0": version "7.15.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" @@ -881,11 +758,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== -"@babel/parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" - integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -1163,16 +1035,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-private-property-in-object@^7.21.11": - version "7.21.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" - integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" @@ -2261,15 +2123,6 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" @@ -2317,22 +2170,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" - integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" @@ -2366,15 +2203,6 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -5977,12 +5805,12 @@ dependencies: ts-toolbelt "^6.15.1" -"@types/react-dom@17.0.2", "@types/react-dom@^17.0.2": - version "17.0.2" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.2.tgz#35654cf6c49ae162d5bc90843d5437dc38008d43" - integrity sha512-Icd9KEgdnFfJs39KyRyr0jQ7EKhq8U6CcHRMGAS45fp5qgUvxL3ujUCfWFttUK2UErqZNj97t9gsVPNAqcwoCg== +"@types/react-dom@^17.0.2": + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" + integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== dependencies: - "@types/react" "*" + "@types/react" "^17" "@types/react-router-dom@^5.3.1": version "5.3.1" @@ -6001,12 +5829,31 @@ "@types/history" "*" "@types/react" "*" -"@types/react@*", "@types/react@17.0.2", "@types/react@^15.0.0 || ^16.0.0", "@types/react@^17.0.2": - version "17.0.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" - integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== +"@types/react@*", "@types/react@^17": + version "17.0.44" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" + integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^15.0.0 || ^16.0.0": + version "16.14.35" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.35.tgz#9d3cf047d85aca8006c4776693124a5be90ee429" + integrity sha512-NUEiwmSS1XXtmBcsm1NyRRPYjoZF2YTE89/5QiLt5mlGffYK9FQqOKuOLuXNrjPQV04oQgaZG+Yq02ZfHoFyyg== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^17.0.2": + version "17.0.53" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab" + integrity sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" "@types/resolve@0.0.8", "@types/resolve@^0.0.8": @@ -6016,6 +5863,11 @@ dependencies: "@types/node" "*" +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -22583,7 +22435,7 @@ react-display-name@^0.2.3: resolved "https://registry.yarnpkg.com/react-display-name/-/react-display-name-0.2.5.tgz#304c7cbfb59ee40389d436e1a822c17fe27936c6" integrity sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg== -react-dom@17.0.2, react-dom@^17.0.2: +react-dom@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== @@ -22833,7 +22685,7 @@ react-wonka@^2.0.1: resolved "https://registry.yarnpkg.com/react-wonka/-/react-wonka-2.0.1.tgz#75bdf03dbad8ceb8c1066216f635f05ce2b642a5" integrity sha512-mM2UH2gnK5LLzaqVWd6JCLrB1vO3I4PN/sQZbjvzsjms4vSv+nKwelNUftM0KeC+LtTPC4GGsuxyu2XJnsCUTw== -react@17.0.2, react@^17.0.2: +react@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -25102,10 +24954,10 @@ style-to-object@^0.4.0: dependencies: inline-style-parser "0.1.1" -styled-components@^5, styled-components@^5.2.1: - version "5.3.11" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" - integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== +styled-components@^5.2.1: + version "5.3.6" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.6.tgz#27753c8c27c650bee9358e343fc927966bfd00d1" + integrity sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" @@ -26014,11 +25866,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.9.5: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - typescript@^4.2.2, typescript@^4.3.4, typescript@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" @@ -26029,6 +25876,11 @@ typescript@^4.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== +typescript@^4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== + typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" From 32356ab791b1208998938e4e6ff039303e3712e9 Mon Sep 17 00:00:00 2001 From: kafann <75225303+kafann@users.noreply.github.com> Date: Wed, 19 Jul 2023 19:05:06 -0400 Subject: [PATCH 06/27] first pushes --- .../components/modals/create-quest-modal.tsx | 91 +++++++++++++++++-- packages/react-app/src/components/quest.tsx | 1 + packages/react-app/src/models/quest.model.ts | 1 + 3 files changed, 87 insertions(+), 6 deletions(-) diff --git a/packages/react-app/src/components/modals/create-quest-modal.tsx b/packages/react-app/src/components/modals/create-quest-modal.tsx index 9ed6cca5..7f931949 100644 --- a/packages/react-app/src/components/modals/create-quest-modal.tsx +++ b/packages/react-app/src/components/modals/create-quest-modal.tsx @@ -1,5 +1,6 @@ /* eslint-disable no-nested-ternary */ -import { Button, IconPlus, useTheme, Info } from '@1hive/1hive-ui'; +import { Button, IconPlus, IconCross, useTheme, Info } from '@1hive/1hive-ui'; + import { debounce, noop, uniqueId } from 'lodash-es'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { MAX_LINE_DESCRIPTION } from 'src/constants'; @@ -77,10 +78,23 @@ const MaxPlayerLineStyled = styled.div` align-items: center; `; -const PlayerWrapperStyled = styled.div` +const MaxPlayerWrapperStyled = styled.div` padding-right: ${GUpx(2)}; `; - +const PlayerWrapperStyled = styled.div` + display: flex; + flex-direction: row; + align-items: flex-end; + max-width: 425px; + Button { + margin-bottom: ${GUpx(1)}; + min-height: 45px; + border: none; + } +`; +const AddWrapperStyled = styled.div` + display: flex; +`; const DepositInfoStyled = styled(Info)` padding: ${GUpx(1)}; `; @@ -285,6 +299,19 @@ export default function QuestModal({ } }; + const addPlayerToWhitelist = (setValues: (_: QuestModel) => void, values: QuestModel) => { + values.players?.push(''); + setValues(values); + }; + const removePlayerFromWhitelist = ( + setValues: (_: QuestModel) => void, + values: QuestModel, + index: number, + ) => { + values.players?.splice(index, 1); + setValues(values); + }; + const descriptionTemplate = `[Summary of ~5 lines] ## Specifications @@ -331,12 +358,23 @@ export default function QuestModal({ ...questDataState, unlimited: true, fallbackAddress: questDataState?.fallbackAddress, + isWhitelist: false, + players: [''], } as QuestModel } onSubmit={onQuestSubmit} validate={validate} > - {({ values, handleChange, handleBlur, errors, touched, setTouched, handleSubmit }) => { + {({ + values, + handleChange, + handleBlur, + errors, + touched, + setTouched, + handleSubmit, + setValues, + }) => { const onNext = (currentStep: number) => { const stepErrors = validate(values); if (currentStep === 0) { @@ -545,7 +583,7 @@ export default function QuestModal({ /> - + - + , + <> + + {values.isWhitelist && ( + <> + {values.players?.map((player, i) => ( + + + +