diff --git a/contracts/fusionseries/FusionSeries.sol b/contracts/fusionseries/FusionSeries.sol index b10b200..88af8a0 100644 --- a/contracts/fusionseries/FusionSeries.sol +++ b/contracts/fusionseries/FusionSeries.sol @@ -34,6 +34,8 @@ contract FusionSeries is Context, ERC1155Supply { // Optional mapping for token URIs mapping(uint256 => string) private _tokenURIs; + //// phygitalTokenID => FusionSeries -- >if it exists +++ + IACCESSMASTER flowRoles; modifier onlyOperator() { @@ -94,6 +96,8 @@ contract FusionSeries is Context, ERC1155Supply { * - the caller must have the `FLOW_CREATOR_ROLE`. */ function createAsset( + //contractAddr + //tokenID -> phygitalTokenID = FusionSeries tokenId uint256 amount, bytes memory data, string memory _uri diff --git a/contracts/phygital/PhygitalA.sol b/contracts/phygital/PhygitalA.sol index eb42588..4b9cc96 100644 --- a/contracts/phygital/PhygitalA.sol +++ b/contracts/phygital/PhygitalA.sol @@ -68,6 +68,14 @@ contract PhygitalA is Context, ERC2981, ERC721A, ERC721ABurnable { IACCESSMASTER flowRoles; IERC20 token; + modifier onlyAdnin() { + require( + flowRoles.isAdmin(_msgSender()), + "PhygitalA: User is not authorized" + ); + _; + } + modifier onlyOperator() { require( flowRoles.isOperator(_msgSender()), @@ -143,7 +151,6 @@ contract PhygitalA is Context, ERC2981, ERC721A, ERC721ABurnable { // SET DEFAULT ROYALTY _setDefaultRoyalty(_msgSender(), uint96(contractDetails[2])); maxMint = uint16(contractDetails[3]); - baseURL = _baseUri; accessMasterAddress = accessControlAddress; } @@ -287,7 +294,7 @@ contract PhygitalA is Context, ERC2981, ERC721A, ERC721ABurnable { ); } - function reveal(string memory uri) external { + function reveal(string memory uri) external onlyAdnin { require(isRevealed == false, "Collection is already revealed!"); isRevealed = true; baseURL = uri; diff --git a/contracts/phygital/Reward.sol b/contracts/phygital/Reward.sol new file mode 100644 index 0000000..511a518 --- /dev/null +++ b/contracts/phygital/Reward.sol @@ -0,0 +1,172 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/utils/Context.sol"; +import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol"; +import "../accessmaster/interfaces/IAccessMaster.sol"; + +contract RewardToken is Context, ERC1155Supply { + string public name; + string public symbol; + + address public tradeHub; + address public accessMasterAddress; + + uint256 public Counter; + uint8 public constant version = 1; + // Optional mapping for token URIs + mapping(uint256 => string) private _tokenURIs; + mapping(address => mapping(uint256 => uint256)) public phygitalToRewardId; + + //// phygitalTokenID => RewardToken -- >if it exists +++ + + IACCESSMASTER flowRoles; + + modifier onlyOperator() { + require( + flowRoles.isOperator(_msgSender()), + "RewardToken: Unauthorized!" + ); + _; + } + + modifier onlyCreator() { + require( + flowRoles.isCreator(_msgSender()), + "RewardToken: Unauthorized!" + ); + _; + } + + event RewardTokenCreated( + uint256 indexed tokenID, + address indexed creator, + uint256 indexed amount, + string metadataUri + ); + event RewardTokenDestroyed(uint indexed tokenId, address ownerOrApproved); + + // tradeHub should be there + /** + * @dev Grants `FLOW_ADMIN_ROLE`, `FLOW_CREATOR_ROLE` and `FLOW_OPERATOR_ROLE` to the + * account that deploys the contract. + * + */ + constructor( + string memory baseURI, + string memory _name, + string memory _symbol, + address tradeHubAddress, + address flowContract + ) ERC1155(baseURI) { + name = _name; + symbol = _symbol; + tradeHub = tradeHubAddress; + flowRoles = IACCESSMASTER(flowContract); + accessMasterAddress = flowContract; + } + + /** + * @dev Creates a new token for `to`. Its token ID will be automatically + * assigned (and available on the emitted {IERC1155-Transfer} event), and the token + * URI autogenerated based on the base URI passed at construction. + * + * + * Requirements: + * + * - the caller must have the `FLOW_CREATOR_ROLE`. + */ + ///IssueRewardToken + function createFanToken( + address phygitalcontractAddr, + uint256 amount, + uint256 tokenId, + bytes memory data, + string memory _uri + ) public returns (uint256) { + uint256 currentTokenID; + if (phygitalToRewardId[phygitalcontractAddr][tokenId] > 0) { + currentTokenID = phygitalToRewardId[phygitalcontractAddr][tokenId]; + } else { + Counter++; + currentTokenID = Counter; + } + _mint(_msgSender(), currentTokenID, amount, data); + _tokenURIs[currentTokenID] = _uri; + setApprovalForAll(tradeHub, true); + emit RewardTokenCreated(currentTokenID, _msgSender(), amount, _uri); + return currentTokenID; + } + + /** + * @dev Creates a new token for `to`. Its token ID will be automatically + * assigned (and available on the emitted {IERC1155-Transfer} event), and the token + * URI autogenerated based on the base URI passed at construction. + * + * Requirements: + * + * - the caller must have the `FLOW_CREATOR_ROLE`. + */ + function delegateAssetCreation( + address phygitalcontractAddr, + address creator, + uint256 tokenId, + uint256 amount, + bytes memory data, + string memory _uri + ) public onlyOperator returns (uint256) { + uint256 currentTokenID; + // We cannot just use balanceOf to create the new tokenId because tokens + // can be burned (destroyed), so we need a separate counter. + if (phygitalToRewardId[phygitalcontractAddr][tokenId] > 0) { + currentTokenID = phygitalToRewardId[phygitalcontractAddr][tokenId]; + } else { + Counter++; + currentTokenID = Counter; + } + _mint(creator, currentTokenID, amount, data); + _tokenURIs[currentTokenID] = _uri; + setApprovalForAll(tradeHub, true); + emit RewardTokenCreated(currentTokenID, _msgSender(), amount, _uri); + return currentTokenID; + } + + /** + * @notice Burns `tokenId`. See {ERC721-_burn}. + * + * @dev Requirements: + * + * - The caller must own `tokenId` or be an approved operator. + */ + function destroyAsset(uint256 tokenId, uint256 amount) public { + require( + balanceOf(_msgSender(), tokenId) == amount, + "RewardToken: Caller is not token owner or approved" + ); + _burn(_msgSender(), tokenId, amount); + emit RewardTokenDestroyed(tokenId, _msgSender()); + } + + /// @dev ONLY Operator can set the Base URI + function setURI(string memory newuri) external onlyOperator { + _setURI(newuri); + } + + /** Getter Functions **/ + + /// @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. + function uri( + uint256 tokenId + ) public view virtual override returns (string memory) { + return _tokenURIs[tokenId]; + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface( + bytes4 interfaceId + ) public view virtual override(ERC1155) returns (bool) { + return super.supportsInterface(interfaceId); + } +} diff --git a/scripts/RewardDeploy.js b/scripts/RewardDeploy.js new file mode 100644 index 0000000..b5de85f --- /dev/null +++ b/scripts/RewardDeploy.js @@ -0,0 +1,55 @@ +// imports +const { ethers, run, network } = require("hardhat") +// async main +async function main() { + const accounts = await ethers.getSigners() + const deplpoyer = accounts[0].address + const RewardTokenNftFactory = await ethers.getContractFactory("RewardToken") + console.log("Deploying contract...") + const RewardToken = await RewardTokenNftFactory.deploy( + "ipfs://bafkreib7oqdtji6xhcsf3usbzt4mzefds7bs3ye2t3aedg2ssy6nyn36gq", + "RewardToken", + "RTS", + "0xaf5793324C9de8e164E822652278AB8FC174C78e", + "0xcA1DE631D9Cb2e64C863BF50b83D18249dFb7054" + ) + await RewardToken.deployed() + console.log(`Deployed contract to: ${RewardToken.address}`) + + if (hre.network.name != "hardhat") { + console.log("Waiting for block confirmations...") + await RewardToken.deployTransaction.wait(6) + await verify(RewardToken.address, [ + "ipfs://bafkreib7oqdtji6xhcsf3usbzt4mzefds7bs3ye2t3aedg2ssy6nyn36gq", + "RewardToken", + "RTS", + "0xaf5793324C9de8e164E822652278AB8FC174C78e", + "0xcA1DE631D9Cb2e64C863BF50b83D18249dFb7054", + ]) + } +} + +// async function verify(contractAddress, args) { +const verify = async (contractAddress, args) => { + console.log("Verifying contract...") + try { + await run("verify:verify", { + address: contractAddress, + constructorArguments: args, + }) + } catch (e) { + if (e.message.toLowerCase().includes("already verified")) { + console.log("Already Verified!") + } else { + console.log(e) + } + } +} + +// main +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) diff --git a/scripts/launch/launch.json b/scripts/launch/launch.json index c702f0d..074f50f 100644 --- a/scripts/launch/launch.json +++ b/scripts/launch/launch.json @@ -1,6 +1,12 @@ { - "contractName": "AccessMaster", - "constructorParams": { - "param1": "0x83AD8ddAdb013fbA80DE0d802FD4fB1a949AD79f" + "contractName" : "PhygitalA", + "constructorParams":{ + "param1": "Alice Clothing", + "param2" : "AC", + "param3" : "0x3A29EA5Ee6AB0326D72b55837dD9fD45b7a867Dd", + "param4" : "0xc3fE1c3bCCE02d7A115Df2d4737137A15ff830F9", + "param5" : "0xe6b8a5CF854791412c1f6EFC7CAf629f5Df1c747", + "param6" : "[10000000000000000,100,300,6]", + "param7" : "www.xyz.com" } } \ No newline at end of file diff --git a/typechain-types/RewardToken.ts b/typechain-types/RewardToken.ts new file mode 100644 index 0000000..a736421 --- /dev/null +++ b/typechain-types/RewardToken.ts @@ -0,0 +1,886 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; +import { Listener, Provider } from "@ethersproject/providers"; +import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; + +export interface RewardTokenInterface extends utils.Interface { + contractName: "RewardToken"; + functions: { + "Counter()": FunctionFragment; + "accessMasterAddress()": FunctionFragment; + "balanceOf(address,uint256)": FunctionFragment; + "balanceOfBatch(address[],uint256[])": FunctionFragment; + "createFanToken(address,uint256,uint256,bytes,string)": FunctionFragment; + "delegateAssetCreation(address,address,uint256,uint256,bytes,string)": FunctionFragment; + "destroyAsset(uint256,uint256)": FunctionFragment; + "exists(uint256)": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "name()": FunctionFragment; + "phygitalToRewardId(address,uint256)": FunctionFragment; + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; + "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "setURI(string)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "symbol()": FunctionFragment; + "totalSupply()": FunctionFragment; + "tradeHub()": FunctionFragment; + "uri(uint256)": FunctionFragment; + "version()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "Counter", values?: undefined): string; + encodeFunctionData( + functionFragment: "accessMasterAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOfBatch", + values: [string[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "createFanToken", + values: [string, BigNumberish, BigNumberish, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "delegateAssetCreation", + values: [string, string, BigNumberish, BigNumberish, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "destroyAsset", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "exists", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "phygitalToRewardId", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeBatchTransferFrom", + values: [string, string, BigNumberish[], BigNumberish[], BytesLike] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom", + values: [string, string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "setURI", values: [string]): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "tradeHub", values?: undefined): string; + encodeFunctionData(functionFragment: "uri", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "version", values?: undefined): string; + + decodeFunctionResult(functionFragment: "Counter", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "accessMasterAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "balanceOfBatch", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFanToken", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "delegateAssetCreation", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "destroyAsset", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "phygitalToRewardId", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeBatchTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tradeHub", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "uri", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; + + events: { + "ApprovalForAll(address,address,bool)": EventFragment; + "RewardTokenCreated(uint256,address,uint256,string)": EventFragment; + "RewardTokenDestroyed(uint256,address)": EventFragment; + "TransferBatch(address,address,address,uint256[],uint256[])": EventFragment; + "TransferSingle(address,address,address,uint256,uint256)": EventFragment; + "URI(string,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RewardTokenCreated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RewardTokenDestroyed"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferBatch"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferSingle"): EventFragment; + getEvent(nameOrSignatureOrTopic: "URI"): EventFragment; +} + +export type ApprovalForAllEvent = TypedEvent< + [string, string, boolean], + { account: string; operator: string; approved: boolean } +>; + +export type ApprovalForAllEventFilter = TypedEventFilter; + +export type RewardTokenCreatedEvent = TypedEvent< + [BigNumber, string, BigNumber, string], + { + tokenID: BigNumber; + creator: string; + amount: BigNumber; + metadataUri: string; + } +>; + +export type RewardTokenCreatedEventFilter = + TypedEventFilter; + +export type RewardTokenDestroyedEvent = TypedEvent< + [BigNumber, string], + { tokenId: BigNumber; ownerOrApproved: string } +>; + +export type RewardTokenDestroyedEventFilter = + TypedEventFilter; + +export type TransferBatchEvent = TypedEvent< + [string, string, string, BigNumber[], BigNumber[]], + { + operator: string; + from: string; + to: string; + ids: BigNumber[]; + values: BigNumber[]; + } +>; + +export type TransferBatchEventFilter = TypedEventFilter; + +export type TransferSingleEvent = TypedEvent< + [string, string, string, BigNumber, BigNumber], + { + operator: string; + from: string; + to: string; + id: BigNumber; + value: BigNumber; + } +>; + +export type TransferSingleEventFilter = TypedEventFilter; + +export type URIEvent = TypedEvent< + [string, BigNumber], + { value: string; id: BigNumber } +>; + +export type URIEventFilter = TypedEventFilter; + +export interface RewardToken extends BaseContract { + contractName: "RewardToken"; + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: RewardTokenInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + Counter(overrides?: CallOverrides): Promise<[BigNumber]>; + + accessMasterAddress(overrides?: CallOverrides): Promise<[string]>; + + balanceOf( + account: string, + id: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + balanceOfBatch( + accounts: string[], + ids: BigNumberish[], + overrides?: CallOverrides + ): Promise<[BigNumber[]]>; + + createFanToken( + phygitalcontractAddr: string, + amount: BigNumberish, + tokenId: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + delegateAssetCreation( + phygitalcontractAddr: string, + creator: string, + tokenId: BigNumberish, + amount: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + destroyAsset( + tokenId: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + exists(id: BigNumberish, overrides?: CallOverrides): Promise<[boolean]>; + + isApprovedForAll( + account: string, + operator: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + name(overrides?: CallOverrides): Promise<[string]>; + + phygitalToRewardId( + arg0: string, + arg1: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + safeBatchTransferFrom( + from: string, + to: string, + ids: BigNumberish[], + values: BigNumberish[], + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + from: string, + to: string, + id: BigNumberish, + value: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setURI( + newuri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + "totalSupply()"(overrides?: CallOverrides): Promise<[BigNumber]>; + + "totalSupply(uint256)"( + id: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tradeHub(overrides?: CallOverrides): Promise<[string]>; + + uri(tokenId: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + version(overrides?: CallOverrides): Promise<[number]>; + }; + + Counter(overrides?: CallOverrides): Promise; + + accessMasterAddress(overrides?: CallOverrides): Promise; + + balanceOf( + account: string, + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + accounts: string[], + ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + createFanToken( + phygitalcontractAddr: string, + amount: BigNumberish, + tokenId: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + delegateAssetCreation( + phygitalcontractAddr: string, + creator: string, + tokenId: BigNumberish, + amount: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + destroyAsset( + tokenId: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + exists(id: BigNumberish, overrides?: CallOverrides): Promise; + + isApprovedForAll( + account: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + phygitalToRewardId( + arg0: string, + arg1: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeBatchTransferFrom( + from: string, + to: string, + ids: BigNumberish[], + values: BigNumberish[], + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + from: string, + to: string, + id: BigNumberish, + value: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setURI( + newuri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + "totalSupply()"(overrides?: CallOverrides): Promise; + + "totalSupply(uint256)"( + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tradeHub(overrides?: CallOverrides): Promise; + + uri(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + callStatic: { + Counter(overrides?: CallOverrides): Promise; + + accessMasterAddress(overrides?: CallOverrides): Promise; + + balanceOf( + account: string, + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + accounts: string[], + ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + createFanToken( + phygitalcontractAddr: string, + amount: BigNumberish, + tokenId: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: CallOverrides + ): Promise; + + delegateAssetCreation( + phygitalcontractAddr: string, + creator: string, + tokenId: BigNumberish, + amount: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: CallOverrides + ): Promise; + + destroyAsset( + tokenId: BigNumberish, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exists(id: BigNumberish, overrides?: CallOverrides): Promise; + + isApprovedForAll( + account: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + phygitalToRewardId( + arg0: string, + arg1: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeBatchTransferFrom( + from: string, + to: string, + ids: BigNumberish[], + values: BigNumberish[], + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + safeTransferFrom( + from: string, + to: string, + id: BigNumberish, + value: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: CallOverrides + ): Promise; + + setURI(newuri: string, overrides?: CallOverrides): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + "totalSupply()"(overrides?: CallOverrides): Promise; + + "totalSupply(uint256)"( + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tradeHub(overrides?: CallOverrides): Promise; + + uri(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; + + filters: { + "ApprovalForAll(address,address,bool)"( + account?: string | null, + operator?: string | null, + approved?: null + ): ApprovalForAllEventFilter; + ApprovalForAll( + account?: string | null, + operator?: string | null, + approved?: null + ): ApprovalForAllEventFilter; + + "RewardTokenCreated(uint256,address,uint256,string)"( + tokenID?: BigNumberish | null, + creator?: string | null, + amount?: BigNumberish | null, + metadataUri?: null + ): RewardTokenCreatedEventFilter; + RewardTokenCreated( + tokenID?: BigNumberish | null, + creator?: string | null, + amount?: BigNumberish | null, + metadataUri?: null + ): RewardTokenCreatedEventFilter; + + "RewardTokenDestroyed(uint256,address)"( + tokenId?: BigNumberish | null, + ownerOrApproved?: null + ): RewardTokenDestroyedEventFilter; + RewardTokenDestroyed( + tokenId?: BigNumberish | null, + ownerOrApproved?: null + ): RewardTokenDestroyedEventFilter; + + "TransferBatch(address,address,address,uint256[],uint256[])"( + operator?: string | null, + from?: string | null, + to?: string | null, + ids?: null, + values?: null + ): TransferBatchEventFilter; + TransferBatch( + operator?: string | null, + from?: string | null, + to?: string | null, + ids?: null, + values?: null + ): TransferBatchEventFilter; + + "TransferSingle(address,address,address,uint256,uint256)"( + operator?: string | null, + from?: string | null, + to?: string | null, + id?: null, + value?: null + ): TransferSingleEventFilter; + TransferSingle( + operator?: string | null, + from?: string | null, + to?: string | null, + id?: null, + value?: null + ): TransferSingleEventFilter; + + "URI(string,uint256)"( + value?: null, + id?: BigNumberish | null + ): URIEventFilter; + URI(value?: null, id?: BigNumberish | null): URIEventFilter; + }; + + estimateGas: { + Counter(overrides?: CallOverrides): Promise; + + accessMasterAddress(overrides?: CallOverrides): Promise; + + balanceOf( + account: string, + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + accounts: string[], + ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + createFanToken( + phygitalcontractAddr: string, + amount: BigNumberish, + tokenId: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + delegateAssetCreation( + phygitalcontractAddr: string, + creator: string, + tokenId: BigNumberish, + amount: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + destroyAsset( + tokenId: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + exists(id: BigNumberish, overrides?: CallOverrides): Promise; + + isApprovedForAll( + account: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + phygitalToRewardId( + arg0: string, + arg1: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeBatchTransferFrom( + from: string, + to: string, + ids: BigNumberish[], + values: BigNumberish[], + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + from: string, + to: string, + id: BigNumberish, + value: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setURI( + newuri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + "totalSupply()"(overrides?: CallOverrides): Promise; + + "totalSupply(uint256)"( + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tradeHub(overrides?: CallOverrides): Promise; + + uri(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + Counter(overrides?: CallOverrides): Promise; + + accessMasterAddress( + overrides?: CallOverrides + ): Promise; + + balanceOf( + account: string, + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + accounts: string[], + ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + createFanToken( + phygitalcontractAddr: string, + amount: BigNumberish, + tokenId: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + delegateAssetCreation( + phygitalcontractAddr: string, + creator: string, + tokenId: BigNumberish, + amount: BigNumberish, + data: BytesLike, + _uri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + destroyAsset( + tokenId: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + exists( + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + account: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + phygitalToRewardId( + arg0: string, + arg1: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeBatchTransferFrom( + from: string, + to: string, + ids: BigNumberish[], + values: BigNumberish[], + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + from: string, + to: string, + id: BigNumberish, + value: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setURI( + newuri: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + "totalSupply()"(overrides?: CallOverrides): Promise; + + "totalSupply(uint256)"( + id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tradeHub(overrides?: CallOverrides): Promise; + + uri( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + version(overrides?: CallOverrides): Promise; + }; +} diff --git a/typechain-types/factories/FusionSeries__factory.ts b/typechain-types/factories/FusionSeries__factory.ts index 577c485..014916a 100644 --- a/typechain-types/factories/FusionSeries__factory.ts +++ b/typechain-types/factories/FusionSeries__factory.ts @@ -727,7 +727,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801562000010575f80fd5b5060405162001ee238038062001ee2833981016040819052620000339162000190565b846200003f81620000a1565b5060056200004e8582620002ca565b5060066200005d8482620002ca565b50600780546001600160a01b039384166001600160a01b031991821617909155600b8054929093169181168217909255600880549092161790555062000396915050565b6002620000af8282620002ca565b5050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000d7575f80fd5b81516001600160401b0380821115620000f457620000f4620000b3565b604051601f8301601f19908116603f011681019082821181831017156200011f576200011f620000b3565b81604052838152602092508660208588010111156200013c575f80fd5b5f91505b838210156200015f578582018301518183018401529082019062000140565b5f602085830101528094505050505092915050565b80516001600160a01b03811681146200018b575f80fd5b919050565b5f805f805f60a08688031215620001a5575f80fd5b85516001600160401b0380821115620001bc575f80fd5b620001ca89838a01620000c7565b96506020880151915080821115620001e0575f80fd5b620001ee89838a01620000c7565b9550604088015191508082111562000204575f80fd5b506200021388828901620000c7565b935050620002246060870162000174565b9150620002346080870162000174565b90509295509295909350565b600181811c908216806200025557607f821691505b6020821081036200027457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002c557805f5260205f20601f840160051c81016020851015620002a15750805b601f840160051c820191505b81811015620002c2575f8155600101620002ad565b50505b505050565b81516001600160401b03811115620002e657620002e6620000b3565b620002fe81620002f7845462000240565b846200027a565b602080601f83116001811462000334575f84156200031c5750858301515b5f19600386901b1c1916600185901b1785556200038e565b5f85815260208120601f198616915b82811015620003645788860151825594840194600190910190840162000343565b50858210156200038257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b611b3e80620003a45f395ff3fe608060405234801561000f575f80fd5b5060043610610131575f3560e01c80634eeca076116100b457806395d89b411161007957806395d89b411461029e578063a22cb465146102a6578063a4b11052146102b9578063bd85b039146102cc578063e985e9c5146102eb578063f242432a146102fe575f80fd5b80634eeca076146102345780634f558e791461023d57806354fd4d501461025e57806378aa2b38146102785780637ab007151461028b575f80fd5b80630e89341c116100fa5780630e89341c146101d357806318160ddd146101e657806321988227146101ee5780632eb2c2d6146102015780634e1273f414610214575f80fd5b8062fdd58e1461013557806301ffc9a71461015b57806302fe53051461017e57806306fdde03146101935780630aa7c854146101a8575b5f80fd5b61014861014336600461127b565b610311565b6040519081526020015b60405180910390f35b61016e6101693660046112b8565b610338565b6040519015158152602001610152565b61019161018c36600461138b565b610342565b005b61019b6103eb565b6040516101529190611408565b6008546101bb906001600160a01b031681565b6040516001600160a01b039091168152602001610152565b61019b6101e136600461141a565b610477565b600454610148565b6101486101fc366004611431565b610516565b61019161020f366004611528565b610649565b6102276102223660046115cb565b6106b0565b60405161015291906116bf565b61014860095481565b61016e61024b36600461141a565b5f90815260036020526040902054151590565b610266600181565b60405160ff9091168152602001610152565b6101486102863660046116d1565b61077b565b61019161029936600461174a565b6108af565b61019b610970565b6101916102b4366004611777565b61097d565b6007546101bb906001600160a01b031681565b6101486102da36600461141a565b5f9081526003602052604090205490565b61016e6102f93660046117ac565b61098c565b61019161030c3660046117dd565b6109b9565b5f818152602081815260408083206001600160a01b03861684529091529020545b92915050565b5f61033282610a18565b600b546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ba919061183d565b6103df5760405162461bcd60e51b81526004016103d690611858565b60405180910390fd5b6103e881610a67565b50565b600580546103f89061188f565b80601f01602080910402602001604051908101604052809291908181526020018280546104249061188f565b801561046f5780601f106104465761010080835404028352916020019161046f565b820191905f5260205f20905b81548152906001019060200180831161045257829003601f168201915b505050505081565b5f818152600a602052604090208054606091906104939061188f565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf9061188f565b801561050a5780601f106104e15761010080835404028352916020019161050a565b820191905f5260205f20905b8154815290600101906020018083116104ed57829003601f168201915b50505050509050919050565b600b545f906001600160a01b031663efd46065336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561056c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610590919061183d565b6105ac5760405162461bcd60e51b81526004016103d690611858565b60098054905f6105bb836118db565b90915550506009546105cf33828787610a73565b5f818152600a602052604090206105e6848261193c565b506007546105fe906001600160a01b0316600161097d565b84336001600160a01b0316827fe4811c382d53d91e396ee6180074ce1480324060a9949aef9a8452ef91c65e2e866040516106399190611408565b60405180910390a4949350505050565b336001600160a01b038616811480159061066a5750610668868261098c565b155b1561069b5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016103d6565b6106a88686868686610ace565b505050505050565b606081518351146106e15781518351604051635b05999160e01b8152600481019290925260248201526044016103d6565b5f835167ffffffffffffffff8111156106fc576106fc6112da565b604051908082528060200260200182016040528015610725578160200160208202803683370190505b5090505f5b84518110156107735760208082028601015161074e90602080840287010151610311565b828281518110610760576107606119f8565b602090810291909101015260010161072a565b509392505050565b600b545f906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f5919061183d565b6108115760405162461bcd60e51b81526004016103d690611858565b60098054905f610820836118db565b909155505060095461083486828787610a73565b5f818152600a6020526040902061084b848261193c565b50600754610863906001600160a01b0316600161097d565b84336001600160a01b0316827fe4811c382d53d91e396ee6180074ce1480324060a9949aef9a8452ef91c65e2e8660405161089e9190611408565b60405180910390a495945050505050565b806108ba3384610311565b146109235760405162461bcd60e51b815260206004820152603360248201527f467573696f6e5365726965733a2043616c6c6572206973206e6f7420746f6b656044820152721b881bdddb995c881bdc88185c1c1c9bdd9959606a1b60648201526084016103d6565b61092e338383610b33565b817fbc6f06e8b7e09db53951fb0ae62c2bb8ac33d7ec0a02d81c36c0877f80020d46336040516001600160a01b03909116815260200160405180910390a25050565b600680546103f89061188f565b610988338383610b99565b5050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906109da57506109d8868261098c565b155b15610a0b5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016103d6565b6106a88686868686610c2d565b5f6001600160e01b03198216636cdb3d1360e11b1480610a4857506001600160e01b031982166303a24d0760e21b145b8061033257506301ffc9a760e01b6001600160e01b0319831614610332565b6002610988828261193c565b6001600160a01b038416610a9c57604051632bfa23e760e11b81525f60048201526024016103d6565b604080516001808252602082018690528183019081526060820185905260808201909252906106a85f87848487610cb9565b6001600160a01b038416610af757604051632bfa23e760e11b81525f60048201526024016103d6565b6001600160a01b038516610b1f57604051626a0d4560e21b81525f60048201526024016103d6565b610b2c8585858585610cb9565b5050505050565b6001600160a01b038316610b5b57604051626a0d4560e21b81525f60048201526024016103d6565b604080516001808252602082018590528183019081526060820184905260a082019092525f60808201818152919291610b2c91879185908590610cb9565b6001600160a01b038216610bc15760405162ced3e160e81b81525f60048201526024016103d6565b6001600160a01b038381165f81815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610c5657604051632bfa23e760e11b81525f60048201526024016103d6565b6001600160a01b038516610c7e57604051626a0d4560e21b81525f60048201526024016103d6565b60408051600180825260208201869052818301908152606082018590526080820190925290610cb08787848487610cb9565b50505050505050565b610cc585858585610d0c565b6001600160a01b03841615610b2c5782513390600103610cfe5760208481015190840151610cf7838989858589610e49565b50506106a8565b6106a8818787878787610f6a565b610d1884848484611051565b6001600160a01b038416610dbc575f805b8351811015610da3575f838281518110610d4557610d456119f8565b602002602001015190508060035f878581518110610d6557610d656119f8565b602002602001015181526020019081526020015f205f828254610d889190611a0c565b90915550610d9890508184611a0c565b925050600101610d29565b508060045f828254610db59190611a0c565b9091555050505b6001600160a01b038316610e43575f805b8351811015610e37575f838281518110610de957610de96119f8565b602002602001015190508060035f878581518110610e0957610e096119f8565b60209081029190910181015182528101919091526040015f2080549190910390559190910190600101610dcd565b50600480549190910390555b50505050565b6001600160a01b0384163b156106a85760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610e8d9089908990889088908890600401611a1f565b6020604051808303815f875af1925050508015610ec7575060408051601f3d908101601f19168201909252610ec491810190611a63565b60015b610f2e573d808015610ef4576040519150601f19603f3d011682016040523d82523d5f602084013e610ef9565b606091505b5080515f03610f2657604051632bfa23e760e11b81526001600160a01b03861660048201526024016103d6565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610cb057604051632bfa23e760e11b81526001600160a01b03861660048201526024016103d6565b6001600160a01b0384163b156106a85760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610fae9089908990889088908890600401611a7e565b6020604051808303815f875af1925050508015610fe8575060408051601f3d908101601f19168201909252610fe591810190611a63565b60015b611015573d808015610ef4576040519150601f19603f3d011682016040523d82523d5f602084013e610ef9565b6001600160e01b0319811663bc197c8160e01b14610cb057604051632bfa23e760e11b81526001600160a01b03861660048201526024016103d6565b80518251146110805781518151604051635b05999160e01b8152600481019290925260248201526044016103d6565b335f5b8351811015611182576020818102858101820151908501909101516001600160a01b03881615611134575f828152602081815260408083206001600160a01b038c1684529091529020548181101561110e576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016103d6565b5f838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615611178575f828152602081815260408083206001600160a01b038b16845290915281208054839290611172908490611a0c565b90915550505b5050600101611083565b5082516001036112025760208301515f906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516111f3929190918252602082015260400190565b60405180910390a45050610b2c565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611251929190611adb565b60405180910390a45050505050565b80356001600160a01b0381168114611276575f80fd5b919050565b5f806040838503121561128c575f80fd5b61129583611260565b946020939093013593505050565b6001600160e01b0319811681146103e8575f80fd5b5f602082840312156112c8575f80fd5b81356112d3816112a3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611317576113176112da565b604052919050565b5f82601f83011261132e575f80fd5b813567ffffffffffffffff811115611348576113486112da565b61135b601f8201601f19166020016112ee565b81815284602083860101111561136f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561139b575f80fd5b813567ffffffffffffffff8111156113b1575f80fd5b6113bd8482850161131f565b949350505050565b5f81518084525f5b818110156113e9576020818501810151868301820152016113cd565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6112d360208301846113c5565b5f6020828403121561142a575f80fd5b5035919050565b5f805f60608486031215611443575f80fd5b83359250602084013567ffffffffffffffff80821115611461575f80fd5b61146d8783880161131f565b93506040860135915080821115611482575f80fd5b5061148f8682870161131f565b9150509250925092565b5f67ffffffffffffffff8211156114b2576114b26112da565b5060051b60200190565b5f82601f8301126114cb575f80fd5b813560206114e06114db83611499565b6112ee565b8083825260208201915060208460051b870101935086841115611501575f80fd5b602086015b8481101561151d5780358352918301918301611506565b509695505050505050565b5f805f805f60a0868803121561153c575f80fd5b61154586611260565b945061155360208701611260565b9350604086013567ffffffffffffffff8082111561156f575f80fd5b61157b89838a016114bc565b94506060880135915080821115611590575f80fd5b61159c89838a016114bc565b935060808801359150808211156115b1575f80fd5b506115be8882890161131f565b9150509295509295909350565b5f80604083850312156115dc575f80fd5b823567ffffffffffffffff808211156115f3575f80fd5b818501915085601f830112611606575f80fd5b813560206116166114db83611499565b82815260059290921b84018101918181019089841115611634575f80fd5b948201945b838610156116595761164a86611260565b82529482019490820190611639565b9650508601359250508082111561166e575f80fd5b5061167b858286016114bc565b9150509250929050565b5f815180845260208085019450602084015f5b838110156116b457815187529582019590820190600101611698565b509495945050505050565b602081525f6112d36020830184611685565b5f805f80608085870312156116e4575f80fd5b6116ed85611260565b935060208501359250604085013567ffffffffffffffff80821115611710575f80fd5b61171c8883890161131f565b93506060870135915080821115611731575f80fd5b5061173e8782880161131f565b91505092959194509250565b5f806040838503121561175b575f80fd5b50508035926020909101359150565b80151581146103e8575f80fd5b5f8060408385031215611788575f80fd5b61179183611260565b915060208301356117a18161176a565b809150509250929050565b5f80604083850312156117bd575f80fd5b6117c683611260565b91506117d460208401611260565b90509250929050565b5f805f805f60a086880312156117f1575f80fd5b6117fa86611260565b945061180860208701611260565b93506040860135925060608601359150608086013567ffffffffffffffff811115611831575f80fd5b6115be8882890161131f565b5f6020828403121561184d575f80fd5b81516112d38161176a565b6020808252601b908201527f467573696f6e5365726965733a20556e617574686f72697a6564210000000000604082015260600190565b600181811c908216806118a357607f821691505b6020821081036118c157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016118ec576118ec6118c7565b5060010190565b601f82111561193757805f5260205f20601f840160051c810160208510156119185750805b601f840160051c820191505b81811015610b2c575f8155600101611924565b505050565b815167ffffffffffffffff811115611956576119566112da565b61196a81611964845461188f565b846118f3565b602080601f83116001811461199d575f84156119865750858301515b5f19600386901b1c1916600185901b1785556106a8565b5f85815260208120601f198616915b828110156119cb578886015182559484019460019091019084016119ac565b50858210156119e857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b80820180821115610332576103326118c7565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90611a58908301846113c5565b979650505050505050565b5f60208284031215611a73575f80fd5b81516112d3816112a3565b6001600160a01b0386811682528516602082015260a0604082018190525f90611aa990830186611685565b8281036060840152611abb8186611685565b90508281036080840152611acf81856113c5565b98975050505050505050565b604081525f611aed6040830185611685565b8281036020840152611aff8185611685565b9594505050505056fea2646970667358221220c69f26fbc57d05756e0f203386dbd703fa4ea22978ade7847386c03b6676a7a164736f6c63430008180033"; + "0x608060405234801562000010575f80fd5b5060405162001ee238038062001ee2833981016040819052620000339162000190565b846200003f81620000a1565b5060056200004e8582620002ca565b5060066200005d8482620002ca565b50600780546001600160a01b039384166001600160a01b031991821617909155600b8054929093169181168217909255600880549092161790555062000396915050565b6002620000af8282620002ca565b5050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000d7575f80fd5b81516001600160401b0380821115620000f457620000f4620000b3565b604051601f8301601f19908116603f011681019082821181831017156200011f576200011f620000b3565b81604052838152602092508660208588010111156200013c575f80fd5b5f91505b838210156200015f578582018301518183018401529082019062000140565b5f602085830101528094505050505092915050565b80516001600160a01b03811681146200018b575f80fd5b919050565b5f805f805f60a08688031215620001a5575f80fd5b85516001600160401b0380821115620001bc575f80fd5b620001ca89838a01620000c7565b96506020880151915080821115620001e0575f80fd5b620001ee89838a01620000c7565b9550604088015191508082111562000204575f80fd5b506200021388828901620000c7565b935050620002246060870162000174565b9150620002346080870162000174565b90509295509295909350565b600181811c908216806200025557607f821691505b6020821081036200027457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002c557805f5260205f20601f840160051c81016020851015620002a15750805b601f840160051c820191505b81811015620002c2575f8155600101620002ad565b50505b505050565b81516001600160401b03811115620002e657620002e6620000b3565b620002fe81620002f7845462000240565b846200027a565b602080601f83116001811462000334575f84156200031c5750858301515b5f19600386901b1c1916600185901b1785556200038e565b5f85815260208120601f198616915b82811015620003645788860151825594840194600190910190840162000343565b50858210156200038257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b611b3e80620003a45f395ff3fe608060405234801561000f575f80fd5b5060043610610131575f3560e01c80634eeca076116100b457806395d89b411161007957806395d89b411461029e578063a22cb465146102a6578063a4b11052146102b9578063bd85b039146102cc578063e985e9c5146102eb578063f242432a146102fe575f80fd5b80634eeca076146102345780634f558e791461023d57806354fd4d501461025e57806378aa2b38146102785780637ab007151461028b575f80fd5b80630e89341c116100fa5780630e89341c146101d357806318160ddd146101e657806321988227146101ee5780632eb2c2d6146102015780634e1273f414610214575f80fd5b8062fdd58e1461013557806301ffc9a71461015b57806302fe53051461017e57806306fdde03146101935780630aa7c854146101a8575b5f80fd5b61014861014336600461127b565b610311565b6040519081526020015b60405180910390f35b61016e6101693660046112b8565b610338565b6040519015158152602001610152565b61019161018c36600461138b565b610342565b005b61019b6103eb565b6040516101529190611408565b6008546101bb906001600160a01b031681565b6040516001600160a01b039091168152602001610152565b61019b6101e136600461141a565b610477565b600454610148565b6101486101fc366004611431565b610516565b61019161020f366004611528565b610649565b6102276102223660046115cb565b6106b0565b60405161015291906116bf565b61014860095481565b61016e61024b36600461141a565b5f90815260036020526040902054151590565b610266600181565b60405160ff9091168152602001610152565b6101486102863660046116d1565b61077b565b61019161029936600461174a565b6108af565b61019b610970565b6101916102b4366004611777565b61097d565b6007546101bb906001600160a01b031681565b6101486102da36600461141a565b5f9081526003602052604090205490565b61016e6102f93660046117ac565b61098c565b61019161030c3660046117dd565b6109b9565b5f818152602081815260408083206001600160a01b03861684529091529020545b92915050565b5f61033282610a18565b600b546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ba919061183d565b6103df5760405162461bcd60e51b81526004016103d690611858565b60405180910390fd5b6103e881610a67565b50565b600580546103f89061188f565b80601f01602080910402602001604051908101604052809291908181526020018280546104249061188f565b801561046f5780601f106104465761010080835404028352916020019161046f565b820191905f5260205f20905b81548152906001019060200180831161045257829003601f168201915b505050505081565b5f818152600a602052604090208054606091906104939061188f565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf9061188f565b801561050a5780601f106104e15761010080835404028352916020019161050a565b820191905f5260205f20905b8154815290600101906020018083116104ed57829003601f168201915b50505050509050919050565b600b545f906001600160a01b031663efd46065336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561056c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610590919061183d565b6105ac5760405162461bcd60e51b81526004016103d690611858565b60098054905f6105bb836118db565b90915550506009546105cf33828787610a73565b5f818152600a602052604090206105e6848261193c565b506007546105fe906001600160a01b0316600161097d565b84336001600160a01b0316827fe4811c382d53d91e396ee6180074ce1480324060a9949aef9a8452ef91c65e2e866040516106399190611408565b60405180910390a4949350505050565b336001600160a01b038616811480159061066a5750610668868261098c565b155b1561069b5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016103d6565b6106a88686868686610ace565b505050505050565b606081518351146106e15781518351604051635b05999160e01b8152600481019290925260248201526044016103d6565b5f835167ffffffffffffffff8111156106fc576106fc6112da565b604051908082528060200260200182016040528015610725578160200160208202803683370190505b5090505f5b84518110156107735760208082028601015161074e90602080840287010151610311565b828281518110610760576107606119f8565b602090810291909101015260010161072a565b509392505050565b600b545f906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f5919061183d565b6108115760405162461bcd60e51b81526004016103d690611858565b60098054905f610820836118db565b909155505060095461083486828787610a73565b5f818152600a6020526040902061084b848261193c565b50600754610863906001600160a01b0316600161097d565b84336001600160a01b0316827fe4811c382d53d91e396ee6180074ce1480324060a9949aef9a8452ef91c65e2e8660405161089e9190611408565b60405180910390a495945050505050565b806108ba3384610311565b146109235760405162461bcd60e51b815260206004820152603360248201527f467573696f6e5365726965733a2043616c6c6572206973206e6f7420746f6b656044820152721b881bdddb995c881bdc88185c1c1c9bdd9959606a1b60648201526084016103d6565b61092e338383610b33565b817fbc6f06e8b7e09db53951fb0ae62c2bb8ac33d7ec0a02d81c36c0877f80020d46336040516001600160a01b03909116815260200160405180910390a25050565b600680546103f89061188f565b610988338383610b99565b5050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906109da57506109d8868261098c565b155b15610a0b5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016103d6565b6106a88686868686610c2d565b5f6001600160e01b03198216636cdb3d1360e11b1480610a4857506001600160e01b031982166303a24d0760e21b145b8061033257506301ffc9a760e01b6001600160e01b0319831614610332565b6002610988828261193c565b6001600160a01b038416610a9c57604051632bfa23e760e11b81525f60048201526024016103d6565b604080516001808252602082018690528183019081526060820185905260808201909252906106a85f87848487610cb9565b6001600160a01b038416610af757604051632bfa23e760e11b81525f60048201526024016103d6565b6001600160a01b038516610b1f57604051626a0d4560e21b81525f60048201526024016103d6565b610b2c8585858585610cb9565b5050505050565b6001600160a01b038316610b5b57604051626a0d4560e21b81525f60048201526024016103d6565b604080516001808252602082018590528183019081526060820184905260a082019092525f60808201818152919291610b2c91879185908590610cb9565b6001600160a01b038216610bc15760405162ced3e160e81b81525f60048201526024016103d6565b6001600160a01b038381165f81815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610c5657604051632bfa23e760e11b81525f60048201526024016103d6565b6001600160a01b038516610c7e57604051626a0d4560e21b81525f60048201526024016103d6565b60408051600180825260208201869052818301908152606082018590526080820190925290610cb08787848487610cb9565b50505050505050565b610cc585858585610d0c565b6001600160a01b03841615610b2c5782513390600103610cfe5760208481015190840151610cf7838989858589610e49565b50506106a8565b6106a8818787878787610f6a565b610d1884848484611051565b6001600160a01b038416610dbc575f805b8351811015610da3575f838281518110610d4557610d456119f8565b602002602001015190508060035f878581518110610d6557610d656119f8565b602002602001015181526020019081526020015f205f828254610d889190611a0c565b90915550610d9890508184611a0c565b925050600101610d29565b508060045f828254610db59190611a0c565b9091555050505b6001600160a01b038316610e43575f805b8351811015610e37575f838281518110610de957610de96119f8565b602002602001015190508060035f878581518110610e0957610e096119f8565b60209081029190910181015182528101919091526040015f2080549190910390559190910190600101610dcd565b50600480549190910390555b50505050565b6001600160a01b0384163b156106a85760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610e8d9089908990889088908890600401611a1f565b6020604051808303815f875af1925050508015610ec7575060408051601f3d908101601f19168201909252610ec491810190611a63565b60015b610f2e573d808015610ef4576040519150601f19603f3d011682016040523d82523d5f602084013e610ef9565b606091505b5080515f03610f2657604051632bfa23e760e11b81526001600160a01b03861660048201526024016103d6565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610cb057604051632bfa23e760e11b81526001600160a01b03861660048201526024016103d6565b6001600160a01b0384163b156106a85760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610fae9089908990889088908890600401611a7e565b6020604051808303815f875af1925050508015610fe8575060408051601f3d908101601f19168201909252610fe591810190611a63565b60015b611015573d808015610ef4576040519150601f19603f3d011682016040523d82523d5f602084013e610ef9565b6001600160e01b0319811663bc197c8160e01b14610cb057604051632bfa23e760e11b81526001600160a01b03861660048201526024016103d6565b80518251146110805781518151604051635b05999160e01b8152600481019290925260248201526044016103d6565b335f5b8351811015611182576020818102858101820151908501909101516001600160a01b03881615611134575f828152602081815260408083206001600160a01b038c1684529091529020548181101561110e576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016103d6565b5f838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615611178575f828152602081815260408083206001600160a01b038b16845290915281208054839290611172908490611a0c565b90915550505b5050600101611083565b5082516001036112025760208301515f906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516111f3929190918252602082015260400190565b60405180910390a45050610b2c565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611251929190611adb565b60405180910390a45050505050565b80356001600160a01b0381168114611276575f80fd5b919050565b5f806040838503121561128c575f80fd5b61129583611260565b946020939093013593505050565b6001600160e01b0319811681146103e8575f80fd5b5f602082840312156112c8575f80fd5b81356112d3816112a3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611317576113176112da565b604052919050565b5f82601f83011261132e575f80fd5b813567ffffffffffffffff811115611348576113486112da565b61135b601f8201601f19166020016112ee565b81815284602083860101111561136f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561139b575f80fd5b813567ffffffffffffffff8111156113b1575f80fd5b6113bd8482850161131f565b949350505050565b5f81518084525f5b818110156113e9576020818501810151868301820152016113cd565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6112d360208301846113c5565b5f6020828403121561142a575f80fd5b5035919050565b5f805f60608486031215611443575f80fd5b83359250602084013567ffffffffffffffff80821115611461575f80fd5b61146d8783880161131f565b93506040860135915080821115611482575f80fd5b5061148f8682870161131f565b9150509250925092565b5f67ffffffffffffffff8211156114b2576114b26112da565b5060051b60200190565b5f82601f8301126114cb575f80fd5b813560206114e06114db83611499565b6112ee565b8083825260208201915060208460051b870101935086841115611501575f80fd5b602086015b8481101561151d5780358352918301918301611506565b509695505050505050565b5f805f805f60a0868803121561153c575f80fd5b61154586611260565b945061155360208701611260565b9350604086013567ffffffffffffffff8082111561156f575f80fd5b61157b89838a016114bc565b94506060880135915080821115611590575f80fd5b61159c89838a016114bc565b935060808801359150808211156115b1575f80fd5b506115be8882890161131f565b9150509295509295909350565b5f80604083850312156115dc575f80fd5b823567ffffffffffffffff808211156115f3575f80fd5b818501915085601f830112611606575f80fd5b813560206116166114db83611499565b82815260059290921b84018101918181019089841115611634575f80fd5b948201945b838610156116595761164a86611260565b82529482019490820190611639565b9650508601359250508082111561166e575f80fd5b5061167b858286016114bc565b9150509250929050565b5f815180845260208085019450602084015f5b838110156116b457815187529582019590820190600101611698565b509495945050505050565b602081525f6112d36020830184611685565b5f805f80608085870312156116e4575f80fd5b6116ed85611260565b935060208501359250604085013567ffffffffffffffff80821115611710575f80fd5b61171c8883890161131f565b93506060870135915080821115611731575f80fd5b5061173e8782880161131f565b91505092959194509250565b5f806040838503121561175b575f80fd5b50508035926020909101359150565b80151581146103e8575f80fd5b5f8060408385031215611788575f80fd5b61179183611260565b915060208301356117a18161176a565b809150509250929050565b5f80604083850312156117bd575f80fd5b6117c683611260565b91506117d460208401611260565b90509250929050565b5f805f805f60a086880312156117f1575f80fd5b6117fa86611260565b945061180860208701611260565b93506040860135925060608601359150608086013567ffffffffffffffff811115611831575f80fd5b6115be8882890161131f565b5f6020828403121561184d575f80fd5b81516112d38161176a565b6020808252601b908201527f467573696f6e5365726965733a20556e617574686f72697a6564210000000000604082015260600190565b600181811c908216806118a357607f821691505b6020821081036118c157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016118ec576118ec6118c7565b5060010190565b601f82111561193757805f5260205f20601f840160051c810160208510156119185750805b601f840160051c820191505b81811015610b2c575f8155600101611924565b505050565b815167ffffffffffffffff811115611956576119566112da565b61196a81611964845461188f565b846118f3565b602080601f83116001811461199d575f84156119865750858301515b5f19600386901b1c1916600185901b1785556106a8565b5f85815260208120601f198616915b828110156119cb578886015182559484019460019091019084016119ac565b50858210156119e857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b80820180821115610332576103326118c7565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90611a58908301846113c5565b979650505050505050565b5f60208284031215611a73575f80fd5b81516112d3816112a3565b6001600160a01b0386811682528516602082015260a0604082018190525f90611aa990830186611685565b8281036060840152611abb8186611685565b90508281036080840152611acf81856113c5565b98975050505050505050565b604081525f611aed6040830185611685565b8281036020840152611aff8185611685565b9594505050505056fea2646970667358221220ca03bdf2cd4b9498c72a87c3b7c4a68e009896228340049751176737671bad2064736f6c63430008180033"; type FusionSeriesConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/PhygitalA__factory.ts b/typechain-types/factories/PhygitalA__factory.ts index 6c15659..b27e507 100644 --- a/typechain-types/factories/PhygitalA__factory.ts +++ b/typechain-types/factories/PhygitalA__factory.ts @@ -1123,7 +1123,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801562000010575f80fd5b5060405162002ec038038062002ec08339810160408190526200003391620003fc565b868660046200004383826200056e565b5060056200005282826200056e565b5060016002555050601480546001600160a01b038087166001600160a01b031992831617909255600d8054888416620100000262010000600160b01b031990911617905560158054928616929091169190911790558151600414620000fe5760405162461bcd60e51b815260206004820152601860248201527f506879676974616c3a20496e76616c696420496e70757421000000000000000060448201526064015b60405180910390fd5b815f815181106200011357620001136200063a565b6020026020010151600c81905550816001815181106200013757620001376200063a565b60209081029190910101516080526200017433836002815181106200016057620001606200063a565b6020026020010151620001e760201b60201c565b816003815181106200018a576200018a6200063a565b6020908102919091010151600d805461ffff191661ffff909216919091179055600a620001b882826200056e565b5050600e80546001600160a01b0319166001600160a01b039490941693909317909255506200064e9350505050565b6127106001600160601b0382168110156200022857604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401620000f5565b6001600160a01b0383166200025357604051635b6cc80560e11b81525f6004820152602401620000f5565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b909102175f55565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715620002cb57620002cb6200028c565b604052919050565b5f82601f830112620002e3575f80fd5b81516001600160401b03811115620002ff57620002ff6200028c565b602062000315601f8301601f19168201620002a0565b828152858284870101111562000329575f80fd5b5f5b83811015620003485785810183015182820184015282016200032b565b505f928101909101919091529392505050565b80516001600160a01b038116811462000372575f80fd5b919050565b5f82601f83011262000387575f80fd5b815160206001600160401b03821115620003a557620003a56200028c565b8160051b620003b6828201620002a0565b9283528481018201928281019087851115620003d0575f80fd5b83870192505b84831015620003f157825182529183019190830190620003d6565b979650505050505050565b5f805f805f805f60e0888a03121562000413575f80fd5b87516001600160401b03808211156200042a575f80fd5b620004388b838c01620002d3565b985060208a01519150808211156200044e575f80fd5b6200045c8b838c01620002d3565b97506200046c60408b016200035b565b96506200047c60608b016200035b565b95506200048c60808b016200035b565b945060a08a0151915080821115620004a2575f80fd5b620004b08b838c0162000377565b935060c08a0151915080821115620004c6575f80fd5b50620004d58a828b01620002d3565b91505092959891949750929550565b600181811c90821680620004f957607f821691505b6020821081036200051857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200056957805f5260205f20601f840160051c81016020851015620005455750805b601f840160051c820191505b8181101562000566575f815560010162000551565b50505b505050565b81516001600160401b038111156200058a576200058a6200028c565b620005a2816200059b8454620004e4565b846200051e565b602080601f831160018114620005d8575f8415620005c05750858301515b5f19600386901b1c1916600185901b17855562000632565b5f85815260208120601f198616915b828110156200060857888601518255948401946001909101908401620005e7565b50858210156200062657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52603260045260245ffd5b60805161284b620006755f395f81816106e4015281816108c301526111ff015261284b5ff3fe608060405260043610610207575f3560e01c80637501f74111610113578063a22cb4651161009d578063c87b56dd1161006d578063c87b56dd146106b4578063d5abeb01146106d3578063e461c9b614610706578063e985e9c514610725578063f0f7d05d14610744575f80fd5b8063a22cb4651461063e578063a4b110521461065d578063b88d4fde14610682578063c2962bc714610695575f80fd5b80638c38431e116100e35780638c38431e1461053b5780638f08d44d1461055a57806395d89b41146105795780639874cd971461058d578063a0712d681461061f575f80fd5b80637501f741146104875780637db79427146104b457806381530b68146104e2578063882f08f314610501575f80fd5b806323b872dd116101945780634c261247116101645780634c261247146103eb57806354214f691461040a57806354fd4d50146104235780636352211e1461044957806370a0823114610468575f80fd5b806323b872dd146103685780632a55205a1461037b57806342842e0e146103b957806342966c68146103cc575f80fd5b8063081812fc116101da578063081812fc146102cd578063095ea7b3146103045780630aa7c854146103195780630d39fc811461033857806318160ddd1461034d575f80fd5b80630103c92b1461020b57806301ffc9a714610249578063049d01531461027857806306fdde03146102ac575b5f80fd5b348015610216575f80fd5b5061023661022536600461201f565b60136020525f908152604090205481565b6040519081526020015b60405180910390f35b348015610254575f80fd5b5061026861026336600461204f565b610763565b6040519015158152602001610240565b348015610283575f80fd5b5061029761029236600461206a565b610793565b60408051928352602083019190915201610240565b3480156102b7575f80fd5b506102c061098b565b60405161024091906120e1565b3480156102d8575f80fd5b506102ec6102e73660046120f3565b610a1b565b6040516001600160a01b039091168152602001610240565b61031761031236600461206a565b610a54565b005b348015610324575f80fd5b50600e546102ec906001600160a01b031681565b348015610343575f80fd5b50610236600c5481565b348015610358575f80fd5b50600354600254035f1901610236565b61031761037636600461210a565b610a64565b348015610386575f80fd5b5061039a610395366004612148565b610bc9565b604080516001600160a01b039093168352602083019190915201610240565b6103176103c736600461210a565b610c72565b3480156103d7575f80fd5b506103176103e63660046120f3565b610c91565b3480156103f6575f80fd5b506103176104053660046121ef565b610c9f565b348015610415575f80fd5b50600b546102689060ff1681565b34801561042e575f80fd5b50610437600181565b60405160ff9091168152602001610240565b348015610454575f80fd5b506102ec6104633660046120f3565b610d0b565b348015610473575f80fd5b5061023661048236600461201f565b610d15565b348015610492575f80fd5b50600d546104a19061ffff1681565b60405161ffff9091168152602001610240565b3480156104bf575f80fd5b506104d36104ce3660046120f3565b610d59565b60405161024093929190612268565b3480156104ed575f80fd5b506103176104fc3660046120f3565b610e04565b34801561050c575f80fd5b5061026861051b3660046122ad565b805160208183018101805160128252928201919093012091525460ff1681565b348015610546575f80fd5b506103176105553660046122df565b610eda565b348015610565575f80fd5b506103176105743660046120f3565b610ffd565b348015610584575f80fd5b506102c0611143565b348015610598575f80fd5b506105e66105a73660046120f3565b600f6020525f90815260409020805460019091015460ff82169161010081046001600160a01b031691600160a81b90910467ffffffffffffffff169084565b6040805194151585526001600160a01b03909316602085015267ffffffffffffffff909116918301919091526060820152608001610240565b34801561062a575f80fd5b506102976106393660046120f3565b611152565b348015610649575f80fd5b5061031761065836600461231d565b61143c565b348015610668575f80fd5b50600d546102ec906201000090046001600160a01b031681565b610317610690366004612349565b6114a7565b3480156106a0575f80fd5b506103176106af3660046123b1565b6114e8565b3480156106bf575f80fd5b506102c06106ce3660046120f3565b6115d0565b3480156106de575f80fd5b506102367f000000000000000000000000000000000000000000000000000000000000000081565b348015610711575f80fd5b506103176107203660046123d2565b611662565b348015610730575f80fd5b5061026861073f366004612416565b6118d3565b34801561074f575f80fd5b5061023661075e3660046120f3565b611900565b5f636ad56fd360e11b6001600160e01b031983160161078457506001919050565b61078d8261190f565b92915050565b6014545f9081906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080f9190612442565b6108345760405162461bcd60e51b815260040161082b9061245d565b60405180910390fd5b5f6108416002545f190190565b600d5490915061ffff168411158061085d5750600d5461ffff16155b6108c15760405162461bcd60e51b815260206004820152602f60248201527f506879676974616c3a205175616e746974792073686f756c64206265206c657360448201526e1cc81d1a185b881b585e081b5a5b9d608a1b606482015260840161082b565b7f0000000000000000000000000000000000000000000000000000000000000000846108ef6002545f190190565b6108f991906124b2565b11156109175760405162461bcd60e51b815260040161082b906124c5565b610921858561195c565b600d5461093e906201000090046001600160a01b0316600161143c565b337f328ff68d0e66694e405c9f8fc906a346b345aa1f87ec216eaa82f2c654d0d34a61096c6002545f190190565b60408051918252602082018890520160405180910390a2949293505050565b60606004805461099a9061250b565b80601f01602080910402602001604051908101604052809291908181526020018280546109c69061250b565b8015610a115780601f106109e857610100808354040283529160200191610a11565b820191905f5260205f20905b8154815290600101906020018083116109f457829003601f168201915b5050505050905090565b5f610a2582611975565b610a3957610a396333d1c03960e21b6119c0565b505f908152600860205260409020546001600160a01b031690565b610a60828260016119c8565b5050565b5f610a6e82611a69565b6001600160a01b039485169490915081168414610a9457610a9462a1148160e81b6119c0565b5f8281526008602052604090208054610abf8187335b6001600160a01b039081169116811491141790565b610ae157610acd86336118d3565b610ae157610ae1632ce44b5f60e11b6119c0565b8015610aeb575f82555b6001600160a01b038681165f9081526007602052604080822080545f19019055918716808252919020805460010190554260a01b17600160e11b175f85815260066020526040812091909155600160e11b84169003610b7857600184015f818152600660205260408120549003610b76576002548114610b76575f8181526006602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4805f03610bc057610bc0633a954ecd60e21b6119c0565b50505050505050565b5f8281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610c3c5750604080518082019091525f546001600160a01b0381168252600160a01b90046001600160601b031660208201525b60208101515f9061271090610c5a906001600160601b031687612543565b610c64919061255a565b915196919550909350505050565b610c8c83838360405180602001604052805f8152506114a7565b505050565b610c9c816001611b04565b50565b600b5460ff1615610cf25760405162461bcd60e51b815260206004820152601f60248201527f436f6c6c656374696f6e20697320616c72656164792072657665616c65642100604482015260640161082b565b600b805460ff19166001179055600a610a6082826125bd565b5f61078d82611a69565b5f6001600160a01b038216610d3457610d346323d3ad8160e21b6119c0565b506001600160a01b03165f9081526007602052604090205467ffffffffffffffff1690565b60116020525f908152604090208054600182018054919291610d7a9061250b565b80601f0160208091040260200160405190810160405280929190818152602001828054610da69061250b565b8015610df15780601f10610dc857610100808354040283529160200191610df1565b820191905f5260205f20905b815481529060010190602001808311610dd457829003601f168201915b5050506002909301549192505060ff1683565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610e58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7c9190612442565b610e985760405162461bcd60e51b815260040161082b9061245d565b600c81905560408051338152602081018390527fe4fe79a855bb953d57c217fb96867cc30beed4bf0ce6c2b1e7d2731ce74982ec91015b60405180910390a150565b8133610ee582610d0b565b6001600160a01b03161480610f6d57506014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610f49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6d9190612442565b610f895760405162461bcd60e51b815260040161082b9061267d565b5f838152601160205260409020600201805483919060ff19166001836004811115610fb657610fb6612234565b02179055507f07c2cea5a1fbb990e885b52e8c51ce865a718fb8676e7169289a1c137d3d8b3733848442604051610ff094939291906126c4565b60405180910390a1505050565b3361100782610d0b565b6001600160a01b0316146110695760405162461bcd60e51b815260206004820152602360248201527f506879676974616c413a2055736572206973206e6f74206173736574206f776e60448201526265722160e81b606482015260840161082b565b5f8181526011602052604081206002015460ff16600481111561108e5761108e612234565b146110e95760405162461bcd60e51b815260206004820152602560248201527f506879676974616c413a2041737365742063616e6e6f742062652064657374726044820152646f7965642160d81b606482015260840161082b565b6110f4816001611b04565b5f81815260016020526040812055807f2a5fd0bc4df8bf54012cb36761df3287ea7e3380367b791f6f6ad0506b500a0a336040516001600160a01b03909116815260200160405180910390a250565b60606005805461099a9061250b565b5f805f6111616002545f190190565b335f908152601360205260408120549192509061117f9086906124b2565b600d5490915061ffff16156111fd57600d5461ffff168111156111fd5760405162461bcd60e51b815260206004820152603060248201527f506879676974616c413a205175616e746974792073686f756c64206265206c6560448201526f1cdcc81d1a185b881b585e081b5a5b9d60821b606482015260840161082b565b7f00000000000000000000000000000000000000000000000000000000000000008561122b6002545f190190565b61123591906124b2565b11156112535760405162461bcd60e51b815260040161082b906124c5565b61125c85611900565b6015546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156112b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d491906126f7565b10156113225760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c413a204e6f7420656e6f7567682066756e64732100000000604482015260640161082b565b60145460408051633955348d60e21b815290515f926001600160a01b03169163e554d2349160048083019260209291908290030181865afa158015611369573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138d919061270e565b90506113a3338261139d89611900565b5f611c3d565b335f90815260136020526040812080548892906113c19084906124b2565b909155506113d19050338761195c565b600d546113ee906201000090046001600160a01b0316600161143c565b337f328ff68d0e66694e405c9f8fc906a346b345aa1f87ec216eaa82f2c654d0d34a61141c6002545f190190565b60408051918252602082018a90520160405180910390a250909492505050565b335f8181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6114b2848484610a64565b6001600160a01b0383163b156114e2576114ce84848484611db8565b6114e2576114e26368d2bf6b60e11b6119c0565b50505050565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561153c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115609190612442565b61157c5760405162461bcd60e51b815260040161082b9061245d565b600d805461ffff191661ffff83161790557f681fea8fe1457e6e31ea5cec63ed1685758afb352bc523a85590601a4b3382f833604080516001600160a01b03909216825261ffff8416602083015201610ecf565b60606115db82611975565b6115ef576115ef630a14c4b560e41b6119c0565b5f6115f8611e97565b600b5490915060ff16156116155761160e611e97565b9392505050565b80515f036116315760405180602001604052805f81525061160e565b8061163b84611ea6565b60405160200161164c929190612729565b6040516020818303038152906040529392505050565b813361166d82610d0b565b6001600160a01b031614806116f557506014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156116d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f59190612442565b6117115760405162461bcd60e51b815260040161082b9061267d565b61171a83611975565b6117665760405162461bcd60e51b815260206004820181905260248201527f506879676974616c413a20546f6b656e20646f6573206e6f7420657869737473604482015260640161082b565b6012826040516117769190612757565b9081526040519081900360200190205460ff161580156117a157505f83815260116020526040902054155b6117fb5760405162461bcd60e51b815260206004820152602560248201527f506879676974616c413a204e46432054616720697320616c72656164792073746044820152646f7265642160d81b606482015260840161082b565b6040805160608101825242815260208082018581526004838501525f8781526011909252929020815181559151909190600182019061183a90826125bd565b50604082015160028201805460ff1916600183600481111561185e5761185e612234565b021790555090505060016012836040516118789190612757565b908152604051908190036020019020805491151560ff199092169190911790557f35fbbba3856c29d63b934b93a99ab192c3c6b71eacad55451212d003f94eeaad6118c03390565b848442604051610ff09493929190612772565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205460ff1690565b5f600c548261078d9190612543565b5f6301ffc9a760e01b6001600160e01b03198316148061193f57506380ac58cd60e01b6001600160e01b03198316145b8061078d5750506001600160e01b031916635b5e139f60e01b1490565b610a60828260405180602001604052805f815250611ee9565b5f816001116119bb576002548210156119bb575f5b505f82815260066020526040812054908190036119b1576119aa836127a9565b925061198a565b600160e01b161590505b919050565b805f5260045ffd5b5f6119d283610d0b565b90508180156119ea5750336001600160a01b03821614155b15611a0d576119f981336118d3565b611a0d57611a0d6367d9dca160e11b6119c0565b5f8381526008602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b5f81600111611af457505f8181526006602052604081205490819003611ae2576002548210611aa257611aa2636f96cda160e11b6119c0565b5b505f19015f818152600660205260409020548015611aa357600160e01b81165f03611acd57919050565b611add636f96cda160e11b6119c0565b611aa3565b600160e01b81165f03611af457919050565b6119bb636f96cda160e11b6119c0565b5f611b0e83611a69565b9050805f80611b2a865f90815260086020526040902080549091565b915091508415611b6157611b3f818433610aaa565b611b6157611b4d83336118d3565b611b6157611b61632ce44b5f60e11b6119c0565b8015611b6b575f82555b6001600160a01b0383165f81815260076020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b175f87815260066020526040812091909155600160e11b85169003611bf557600186015f818152600660205260408120549003611bf3576002548114611bf3575f8181526006602052604090208590555b505b60405186905f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505060038054600101905550505050565b5f8115611c9a576040516001600160a01b0385169084905f81818185875af1925050503d805f8114611c8a576040519150601f19603f3d011682016040523d82523d5f602084013e611c8f565b606091505b505080915050611d19565b6015546040516323b872dd60e01b81526001600160a01b038781166004830152868116602483015260448201869052909116906323b872dd906064016020604051808303815f875af1158015611cf2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d169190612442565b90505b80611d665760405162461bcd60e51b815260206004820152601a60248201527f506879676974616c413a205472616e73666572206661696c6564000000000000604482015260640161082b565b604080516001600160a01b038088168252861660208201529081018490527f4ed2986a2cde8f90dd7d10ce44efb8d683b5e58ff9a6ffdc2d83dbbacee764379060600160405180910390a15050505050565b604051630a85bd0160e11b81525f906001600160a01b0385169063150b7a0290611dec9033908990889088906004016127be565b6020604051808303815f875af1925050508015611e26575060408051601f3d908101601f19168201909252611e23918101906127fa565b60015b611e79573d808015611e53576040519150601f19603f3d011682016040523d82523d5f602084013e611e58565b606091505b5080515f03611e7157611e716368d2bf6b60e11b6119c0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6060600a805461099a9061250b565b606060a06040510180604052602081039150505f815280825b600183039250600a81066030018353600a900480611ebf5750819003601f19909101908152919050565b611ef38383611f50565b6001600160a01b0383163b15610c8c576002548281035b611f1c5f868380600101945086611db8565b611f3057611f306368d2bf6b60e11b6119c0565b818110611f0a578160025414611f4957611f495f6119c0565b5050505050565b6002545f829003611f6b57611f6b63b562e8dd60e01b6119c0565b5f8181526006602090815260408083206001600160a01b0387164260a01b6001881460e11b17811790915580845260079092528220805468010000000000000001860201905590819003611fc857611fc8622e076360e81b6119c0565b818301825b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4818160010191508103611fcd575060025550505050565b6001600160a01b0381168114610c9c575f80fd5b5f6020828403121561202f575f80fd5b813561160e8161200b565b6001600160e01b031981168114610c9c575f80fd5b5f6020828403121561205f575f80fd5b813561160e8161203a565b5f806040838503121561207b575f80fd5b82356120868161200b565b946020939093013593505050565b5f5b838110156120ae578181015183820152602001612096565b50505f910152565b5f81518084526120cd816020860160208601612094565b601f01601f19169290920160200192915050565b602081525f61160e60208301846120b6565b5f60208284031215612103575f80fd5b5035919050565b5f805f6060848603121561211c575f80fd5b83356121278161200b565b925060208401356121378161200b565b929592945050506040919091013590565b5f8060408385031215612159575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561219657612196612168565b604051601f8501601f19908116603f011681019082821181831017156121be576121be612168565b816040528093508581528686860111156121d6575f80fd5b858560208301375f602087830101525050509392505050565b5f602082840312156121ff575f80fd5b813567ffffffffffffffff811115612215575f80fd5b8201601f81018413612225575f80fd5b611e8f8482356020840161217c565b634e487b7160e01b5f52602160045260245ffd5b6005811061226457634e487b7160e01b5f52602160045260245ffd5b9052565b838152606060208201525f61228060608301856120b6565b9050611e8f6040830184612248565b5f82601f83011261229e575f80fd5b61160e8383356020850161217c565b5f602082840312156122bd575f80fd5b813567ffffffffffffffff8111156122d3575f80fd5b611e8f8482850161228f565b5f80604083850312156122f0575f80fd5b82359150602083013560058110612305575f80fd5b809150509250929050565b8015158114610c9c575f80fd5b5f806040838503121561232e575f80fd5b82356123398161200b565b9150602083013561230581612310565b5f805f806080858703121561235c575f80fd5b84356123678161200b565b935060208501356123778161200b565b925060408501359150606085013567ffffffffffffffff811115612399575f80fd5b6123a58782880161228f565b91505092959194509250565b5f602082840312156123c1575f80fd5b813561ffff8116811461160e575f80fd5b5f80604083850312156123e3575f80fd5b82359150602083013567ffffffffffffffff811115612400575f80fd5b61240c8582860161228f565b9150509250929050565b5f8060408385031215612427575f80fd5b82356124328161200b565b915060208301356123058161200b565b5f60208284031215612452575f80fd5b815161160e81612310565b60208082526021908201527f506879676974616c413a2055736572206973206e6f7420617574686f72697a656040820152601960fa1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561078d5761078d61249e565b60208082526026908201527f506879676974616c413a20457863656564696e67206d617820746f6b656e20736040820152657570706c792160d01b606082015260800190565b600181811c9082168061251f57607f821691505b60208210810361253d57634e487b7160e01b5f52602260045260245ffd5b50919050565b808202811582820484141761078d5761078d61249e565b5f8261257457634e487b7160e01b5f52601260045260245ffd5b500490565b601f821115610c8c57805f5260205f20601f840160051c8101602085101561259e5750805b601f840160051c820191505b81811015611f49575f81556001016125aa565b815167ffffffffffffffff8111156125d7576125d7612168565b6125eb816125e5845461250b565b84612579565b602080601f83116001811461261e575f84156126075750858301515b5f19600386901b1c1916600185901b178555612675565b5f85815260208120601f198616915b8281101561264c5788860151825594840194600190910190840161262d565b508582101561266957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60208082526027908201527f506879676974616c413a55736572206973206e6f74206f776e6572206f72206f6040820152663832b930ba37b960c91b606082015260800190565b6001600160a01b038516815260208101849052608081016126e86040830185612248565b82606083015295945050505050565b5f60208284031215612707575f80fd5b5051919050565b5f6020828403121561271e575f80fd5b815161160e8161200b565b5f835161273a818460208801612094565b83519083019061274e818360208801612094565b01949350505050565b5f8251612768818460208701612094565b9190910192915050565b60018060a01b0385168152836020820152608060408201525f61279860808301856120b6565b905082606083015295945050505050565b5f816127b7576127b761249e565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906127f0908301846120b6565b9695505050505050565b5f6020828403121561280a575f80fd5b815161160e8161203a56fea264697066735822122041780b64d9749b1c4dfcfc3b9b0657a1c62acf22471baaf3ae549fd20bdd067064736f6c63430008180033"; + "0x60a060405234801562000010575f80fd5b5060405162002f5438038062002f548339810160408190526200003391620003fc565b868660046200004383826200056e565b5060056200005282826200056e565b5060016002555050601480546001600160a01b038087166001600160a01b031992831617909255600d8054888416620100000262010000600160b01b031990911617905560158054928616929091169190911790558151600414620000fe5760405162461bcd60e51b815260206004820152601860248201527f506879676974616c3a20496e76616c696420496e70757421000000000000000060448201526064015b60405180910390fd5b815f815181106200011357620001136200063a565b6020026020010151600c81905550816001815181106200013757620001376200063a565b60209081029190910101516080526200017433836002815181106200016057620001606200063a565b6020026020010151620001e760201b60201c565b816003815181106200018a576200018a6200063a565b6020908102919091010151600d805461ffff191661ffff909216919091179055600a620001b882826200056e565b5050600e80546001600160a01b0319166001600160a01b039490941693909317909255506200064e9350505050565b6127106001600160601b0382168110156200022857604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401620000f5565b6001600160a01b0383166200025357604051635b6cc80560e11b81525f6004820152602401620000f5565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b909102175f55565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715620002cb57620002cb6200028c565b604052919050565b5f82601f830112620002e3575f80fd5b81516001600160401b03811115620002ff57620002ff6200028c565b602062000315601f8301601f19168201620002a0565b828152858284870101111562000329575f80fd5b5f5b83811015620003485785810183015182820184015282016200032b565b505f928101909101919091529392505050565b80516001600160a01b038116811462000372575f80fd5b919050565b5f82601f83011262000387575f80fd5b815160206001600160401b03821115620003a557620003a56200028c565b8160051b620003b6828201620002a0565b9283528481018201928281019087851115620003d0575f80fd5b83870192505b84831015620003f157825182529183019190830190620003d6565b979650505050505050565b5f805f805f805f60e0888a03121562000413575f80fd5b87516001600160401b03808211156200042a575f80fd5b620004388b838c01620002d3565b985060208a01519150808211156200044e575f80fd5b6200045c8b838c01620002d3565b97506200046c60408b016200035b565b96506200047c60608b016200035b565b95506200048c60808b016200035b565b945060a08a0151915080821115620004a2575f80fd5b620004b08b838c0162000377565b935060c08a0151915080821115620004c6575f80fd5b50620004d58a828b01620002d3565b91505092959891949750929550565b600181811c90821680620004f957607f821691505b6020821081036200051857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200056957805f5260205f20601f840160051c81016020851015620005455750805b601f840160051c820191505b8181101562000566575f815560010162000551565b50505b505050565b81516001600160401b038111156200058a576200058a6200028c565b620005a2816200059b8454620004e4565b846200051e565b602080601f831160018114620005d8575f8415620005c05750858301515b5f19600386901b1c1916600185901b17855562000632565b5f85815260208120601f198616915b828110156200060857888601518255948401946001909101908401620005e7565b50858210156200062657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52603260045260245ffd5b6080516128df620006755f395f81816106e4015281816108c3015261129301526128df5ff3fe608060405260043610610207575f3560e01c80637501f74111610113578063a22cb4651161009d578063c87b56dd1161006d578063c87b56dd146106b4578063d5abeb01146106d3578063e461c9b614610706578063e985e9c514610725578063f0f7d05d14610744575f80fd5b8063a22cb4651461063e578063a4b110521461065d578063b88d4fde14610682578063c2962bc714610695575f80fd5b80638c38431e116100e35780638c38431e1461053b5780638f08d44d1461055a57806395d89b41146105795780639874cd971461058d578063a0712d681461061f575f80fd5b80637501f741146104875780637db79427146104b457806381530b68146104e2578063882f08f314610501575f80fd5b806323b872dd116101945780634c261247116101645780634c261247146103eb57806354214f691461040a57806354fd4d50146104235780636352211e1461044957806370a0823114610468575f80fd5b806323b872dd146103685780632a55205a1461037b57806342842e0e146103b957806342966c68146103cc575f80fd5b8063081812fc116101da578063081812fc146102cd578063095ea7b3146103045780630aa7c854146103195780630d39fc811461033857806318160ddd1461034d575f80fd5b80630103c92b1461020b57806301ffc9a714610249578063049d01531461027857806306fdde03146102ac575b5f80fd5b348015610216575f80fd5b506102366102253660046120b3565b60136020525f908152604090205481565b6040519081526020015b60405180910390f35b348015610254575f80fd5b506102686102633660046120e3565b610763565b6040519015158152602001610240565b348015610283575f80fd5b506102976102923660046120fe565b610793565b60408051928352602083019190915201610240565b3480156102b7575f80fd5b506102c061098b565b6040516102409190612175565b3480156102d8575f80fd5b506102ec6102e7366004612187565b610a1b565b6040516001600160a01b039091168152602001610240565b6103176103123660046120fe565b610a54565b005b348015610324575f80fd5b50600e546102ec906001600160a01b031681565b348015610343575f80fd5b50610236600c5481565b348015610358575f80fd5b50600354600254035f1901610236565b61031761037636600461219e565b610a64565b348015610386575f80fd5b5061039a6103953660046121dc565b610bc9565b604080516001600160a01b039093168352602083019190915201610240565b6103176103c736600461219e565b610c72565b3480156103d7575f80fd5b506103176103e6366004612187565b610c91565b3480156103f6575f80fd5b50610317610405366004612283565b610c9f565b348015610415575f80fd5b50600b546102689060ff1681565b34801561042e575f80fd5b50610437600181565b60405160ff9091168152602001610240565b348015610454575f80fd5b506102ec610463366004612187565b610d9f565b348015610473575f80fd5b506102366104823660046120b3565b610da9565b348015610492575f80fd5b50600d546104a19061ffff1681565b60405161ffff9091168152602001610240565b3480156104bf575f80fd5b506104d36104ce366004612187565b610ded565b604051610240939291906122fc565b3480156104ed575f80fd5b506103176104fc366004612187565b610e98565b34801561050c575f80fd5b5061026861051b366004612341565b805160208183018101805160128252928201919093012091525460ff1681565b348015610546575f80fd5b50610317610555366004612373565b610f6e565b348015610565575f80fd5b50610317610574366004612187565b611091565b348015610584575f80fd5b506102c06111d7565b348015610598575f80fd5b506105e66105a7366004612187565b600f6020525f90815260409020805460019091015460ff82169161010081046001600160a01b031691600160a81b90910467ffffffffffffffff169084565b6040805194151585526001600160a01b03909316602085015267ffffffffffffffff909116918301919091526060820152608001610240565b34801561062a575f80fd5b50610297610639366004612187565b6111e6565b348015610649575f80fd5b506103176106583660046123b1565b6114d0565b348015610668575f80fd5b50600d546102ec906201000090046001600160a01b031681565b6103176106903660046123dd565b61153b565b3480156106a0575f80fd5b506103176106af366004612445565b61157c565b3480156106bf575f80fd5b506102c06106ce366004612187565b611664565b3480156106de575f80fd5b506102367f000000000000000000000000000000000000000000000000000000000000000081565b348015610711575f80fd5b50610317610720366004612466565b6116f6565b348015610730575f80fd5b5061026861073f3660046124aa565b611967565b34801561074f575f80fd5b5061023661075e366004612187565b611994565b5f636ad56fd360e11b6001600160e01b031983160161078457506001919050565b61078d826119a3565b92915050565b6014545f9081906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080f91906124d6565b6108345760405162461bcd60e51b815260040161082b906124f1565b60405180910390fd5b5f6108416002545f190190565b600d5490915061ffff168411158061085d5750600d5461ffff16155b6108c15760405162461bcd60e51b815260206004820152602f60248201527f506879676974616c3a205175616e746974792073686f756c64206265206c657360448201526e1cc81d1a185b881b585e081b5a5b9d608a1b606482015260840161082b565b7f0000000000000000000000000000000000000000000000000000000000000000846108ef6002545f190190565b6108f99190612546565b11156109175760405162461bcd60e51b815260040161082b90612559565b61092185856119f0565b600d5461093e906201000090046001600160a01b031660016114d0565b337f328ff68d0e66694e405c9f8fc906a346b345aa1f87ec216eaa82f2c654d0d34a61096c6002545f190190565b60408051918252602082018890520160405180910390a2949293505050565b60606004805461099a9061259f565b80601f01602080910402602001604051908101604052809291908181526020018280546109c69061259f565b8015610a115780601f106109e857610100808354040283529160200191610a11565b820191905f5260205f20905b8154815290600101906020018083116109f457829003601f168201915b5050505050905090565b5f610a2582611a09565b610a3957610a396333d1c03960e21b611a54565b505f908152600860205260409020546001600160a01b031690565b610a6082826001611a5c565b5050565b5f610a6e82611afd565b6001600160a01b039485169490915081168414610a9457610a9462a1148160e81b611a54565b5f8281526008602052604090208054610abf8187335b6001600160a01b039081169116811491141790565b610ae157610acd8633611967565b610ae157610ae1632ce44b5f60e11b611a54565b8015610aeb575f82555b6001600160a01b038681165f9081526007602052604080822080545f19019055918716808252919020805460010190554260a01b17600160e11b175f85815260066020526040812091909155600160e11b84169003610b7857600184015f818152600660205260408120549003610b76576002548114610b76575f8181526006602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4805f03610bc057610bc0633a954ecd60e21b611a54565b50505050505050565b5f8281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610c3c5750604080518082019091525f546001600160a01b0381168252600160a01b90046001600160601b031660208201525b60208101515f9061271090610c5a906001600160601b0316876125d7565b610c6491906125ee565b915196919550909350505050565b610c8c83838360405180602001604052805f81525061153b565b505050565b610c9c816001611b98565b50565b6014546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610cf3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1791906124d6565b610d335760405162461bcd60e51b815260040161082b906124f1565b600b5460ff1615610d865760405162461bcd60e51b815260206004820152601f60248201527f436f6c6c656374696f6e20697320616c72656164792072657665616c65642100604482015260640161082b565b600b805460ff19166001179055600a610a608282612651565b5f61078d82611afd565b5f6001600160a01b038216610dc857610dc86323d3ad8160e21b611a54565b506001600160a01b03165f9081526007602052604090205467ffffffffffffffff1690565b60116020525f908152604090208054600182018054919291610e0e9061259f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3a9061259f565b8015610e855780601f10610e5c57610100808354040283529160200191610e85565b820191905f5260205f20905b815481529060010190602001808311610e6857829003601f168201915b5050506002909301549192505060ff1683565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610eec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1091906124d6565b610f2c5760405162461bcd60e51b815260040161082b906124f1565b600c81905560408051338152602081018390527fe4fe79a855bb953d57c217fb96867cc30beed4bf0ce6c2b1e7d2731ce74982ec91015b60405180910390a150565b8133610f7982610d9f565b6001600160a01b0316148061100157506014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610fdd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100191906124d6565b61101d5760405162461bcd60e51b815260040161082b90612711565b5f838152601160205260409020600201805483919060ff1916600183600481111561104a5761104a6122c8565b02179055507f07c2cea5a1fbb990e885b52e8c51ce865a718fb8676e7169289a1c137d3d8b37338484426040516110849493929190612758565b60405180910390a1505050565b3361109b82610d9f565b6001600160a01b0316146110fd5760405162461bcd60e51b815260206004820152602360248201527f506879676974616c413a2055736572206973206e6f74206173736574206f776e60448201526265722160e81b606482015260840161082b565b5f8181526011602052604081206002015460ff166004811115611122576111226122c8565b1461117d5760405162461bcd60e51b815260206004820152602560248201527f506879676974616c413a2041737365742063616e6e6f742062652064657374726044820152646f7965642160d81b606482015260840161082b565b611188816001611b98565b5f81815260016020526040812055807f2a5fd0bc4df8bf54012cb36761df3287ea7e3380367b791f6f6ad0506b500a0a336040516001600160a01b03909116815260200160405180910390a250565b60606005805461099a9061259f565b5f805f6111f56002545f190190565b335f9081526013602052604081205491925090611213908690612546565b600d5490915061ffff161561129157600d5461ffff168111156112915760405162461bcd60e51b815260206004820152603060248201527f506879676974616c413a205175616e746974792073686f756c64206265206c6560448201526f1cdcc81d1a185b881b585e081b5a5b9d60821b606482015260840161082b565b7f0000000000000000000000000000000000000000000000000000000000000000856112bf6002545f190190565b6112c99190612546565b11156112e75760405162461bcd60e51b815260040161082b90612559565b6112f085611994565b6015546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611344573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611368919061278b565b10156113b65760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c413a204e6f7420656e6f7567682066756e64732100000000604482015260640161082b565b60145460408051633955348d60e21b815290515f926001600160a01b03169163e554d2349160048083019260209291908290030181865afa1580156113fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142191906127a2565b9050611437338261143189611994565b5f611cd1565b335f9081526013602052604081208054889290611455908490612546565b90915550611465905033876119f0565b600d54611482906201000090046001600160a01b031660016114d0565b337f328ff68d0e66694e405c9f8fc906a346b345aa1f87ec216eaa82f2c654d0d34a6114b06002545f190190565b60408051918252602082018a90520160405180910390a250909492505050565b335f8181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611546848484610a64565b6001600160a01b0383163b156115765761156284848484611e4c565b611576576115766368d2bf6b60e11b611a54565b50505050565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156115d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f491906124d6565b6116105760405162461bcd60e51b815260040161082b906124f1565b600d805461ffff191661ffff83161790557f681fea8fe1457e6e31ea5cec63ed1685758afb352bc523a85590601a4b3382f833604080516001600160a01b03909216825261ffff8416602083015201610f63565b606061166f82611a09565b61168357611683630a14c4b560e41b611a54565b5f61168c611f2b565b600b5490915060ff16156116a9576116a2611f2b565b9392505050565b80515f036116c55760405180602001604052805f8152506116a2565b806116cf84611f3a565b6040516020016116e09291906127bd565b6040516020818303038152906040529392505050565b813361170182610d9f565b6001600160a01b0316148061178957506014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611765573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178991906124d6565b6117a55760405162461bcd60e51b815260040161082b90612711565b6117ae83611a09565b6117fa5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c413a20546f6b656e20646f6573206e6f7420657869737473604482015260640161082b565b60128260405161180a91906127eb565b9081526040519081900360200190205460ff1615801561183557505f83815260116020526040902054155b61188f5760405162461bcd60e51b815260206004820152602560248201527f506879676974616c413a204e46432054616720697320616c72656164792073746044820152646f7265642160d81b606482015260840161082b565b6040805160608101825242815260208082018581526004838501525f878152601190925292902081518155915190919060018201906118ce9082612651565b50604082015160028201805460ff191660018360048111156118f2576118f26122c8565b0217905550905050600160128360405161190c91906127eb565b908152604051908190036020019020805491151560ff199092169190911790557f35fbbba3856c29d63b934b93a99ab192c3c6b71eacad55451212d003f94eeaad6119543390565b8484426040516110849493929190612806565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205460ff1690565b5f600c548261078d91906125d7565b5f6301ffc9a760e01b6001600160e01b0319831614806119d357506380ac58cd60e01b6001600160e01b03198316145b8061078d5750506001600160e01b031916635b5e139f60e01b1490565b610a60828260405180602001604052805f815250611f7d565b5f81600111611a4f57600254821015611a4f575f5b505f8281526006602052604081205490819003611a4557611a3e8361283d565b9250611a1e565b600160e01b161590505b919050565b805f5260045ffd5b5f611a6683610d9f565b9050818015611a7e5750336001600160a01b03821614155b15611aa157611a8d8133611967565b611aa157611aa16367d9dca160e11b611a54565b5f8381526008602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b5f81600111611b8857505f8181526006602052604081205490819003611b76576002548210611b3657611b36636f96cda160e11b611a54565b5b505f19015f818152600660205260409020548015611b3757600160e01b81165f03611b6157919050565b611b71636f96cda160e11b611a54565b611b37565b600160e01b81165f03611b8857919050565b611a4f636f96cda160e11b611a54565b5f611ba283611afd565b9050805f80611bbe865f90815260086020526040902080549091565b915091508415611bf557611bd3818433610aaa565b611bf557611be18333611967565b611bf557611bf5632ce44b5f60e11b611a54565b8015611bff575f82555b6001600160a01b0383165f81815260076020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b175f87815260066020526040812091909155600160e11b85169003611c8957600186015f818152600660205260408120549003611c87576002548114611c87575f8181526006602052604090208590555b505b60405186905f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505060038054600101905550505050565b5f8115611d2e576040516001600160a01b0385169084905f81818185875af1925050503d805f8114611d1e576040519150601f19603f3d011682016040523d82523d5f602084013e611d23565b606091505b505080915050611dad565b6015546040516323b872dd60e01b81526001600160a01b038781166004830152868116602483015260448201869052909116906323b872dd906064016020604051808303815f875af1158015611d86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611daa91906124d6565b90505b80611dfa5760405162461bcd60e51b815260206004820152601a60248201527f506879676974616c413a205472616e73666572206661696c6564000000000000604482015260640161082b565b604080516001600160a01b038088168252861660208201529081018490527f4ed2986a2cde8f90dd7d10ce44efb8d683b5e58ff9a6ffdc2d83dbbacee764379060600160405180910390a15050505050565b604051630a85bd0160e11b81525f906001600160a01b0385169063150b7a0290611e80903390899088908890600401612852565b6020604051808303815f875af1925050508015611eba575060408051601f3d908101601f19168201909252611eb79181019061288e565b60015b611f0d573d808015611ee7576040519150601f19603f3d011682016040523d82523d5f602084013e611eec565b606091505b5080515f03611f0557611f056368d2bf6b60e11b611a54565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6060600a805461099a9061259f565b606060a06040510180604052602081039150505f815280825b600183039250600a81066030018353600a900480611f535750819003601f19909101908152919050565b611f878383611fe4565b6001600160a01b0383163b15610c8c576002548281035b611fb05f868380600101945086611e4c565b611fc457611fc46368d2bf6b60e11b611a54565b818110611f9e578160025414611fdd57611fdd5f611a54565b5050505050565b6002545f829003611fff57611fff63b562e8dd60e01b611a54565b5f8181526006602090815260408083206001600160a01b0387164260a01b6001881460e11b1781179091558084526007909252822080546801000000000000000186020190559081900361205c5761205c622e076360e81b611a54565b818301825b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4818160010191508103612061575060025550505050565b6001600160a01b0381168114610c9c575f80fd5b5f602082840312156120c3575f80fd5b81356116a28161209f565b6001600160e01b031981168114610c9c575f80fd5b5f602082840312156120f3575f80fd5b81356116a2816120ce565b5f806040838503121561210f575f80fd5b823561211a8161209f565b946020939093013593505050565b5f5b8381101561214257818101518382015260200161212a565b50505f910152565b5f8151808452612161816020860160208601612128565b601f01601f19169290920160200192915050565b602081525f6116a2602083018461214a565b5f60208284031215612197575f80fd5b5035919050565b5f805f606084860312156121b0575f80fd5b83356121bb8161209f565b925060208401356121cb8161209f565b929592945050506040919091013590565b5f80604083850312156121ed575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561222a5761222a6121fc565b604051601f8501601f19908116603f01168101908282118183101715612252576122526121fc565b8160405280935085815286868601111561226a575f80fd5b858560208301375f602087830101525050509392505050565b5f60208284031215612293575f80fd5b813567ffffffffffffffff8111156122a9575f80fd5b8201601f810184136122b9575f80fd5b611f2384823560208401612210565b634e487b7160e01b5f52602160045260245ffd5b600581106122f857634e487b7160e01b5f52602160045260245ffd5b9052565b838152606060208201525f612314606083018561214a565b9050611f2360408301846122dc565b5f82601f830112612332575f80fd5b6116a283833560208501612210565b5f60208284031215612351575f80fd5b813567ffffffffffffffff811115612367575f80fd5b611f2384828501612323565b5f8060408385031215612384575f80fd5b82359150602083013560058110612399575f80fd5b809150509250929050565b8015158114610c9c575f80fd5b5f80604083850312156123c2575f80fd5b82356123cd8161209f565b91506020830135612399816123a4565b5f805f80608085870312156123f0575f80fd5b84356123fb8161209f565b9350602085013561240b8161209f565b925060408501359150606085013567ffffffffffffffff81111561242d575f80fd5b61243987828801612323565b91505092959194509250565b5f60208284031215612455575f80fd5b813561ffff811681146116a2575f80fd5b5f8060408385031215612477575f80fd5b82359150602083013567ffffffffffffffff811115612494575f80fd5b6124a085828601612323565b9150509250929050565b5f80604083850312156124bb575f80fd5b82356124c68161209f565b915060208301356123998161209f565b5f602082840312156124e6575f80fd5b81516116a2816123a4565b60208082526021908201527f506879676974616c413a2055736572206973206e6f7420617574686f72697a656040820152601960fa1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561078d5761078d612532565b60208082526026908201527f506879676974616c413a20457863656564696e67206d617820746f6b656e20736040820152657570706c792160d01b606082015260800190565b600181811c908216806125b357607f821691505b6020821081036125d157634e487b7160e01b5f52602260045260245ffd5b50919050565b808202811582820484141761078d5761078d612532565b5f8261260857634e487b7160e01b5f52601260045260245ffd5b500490565b601f821115610c8c57805f5260205f20601f840160051c810160208510156126325750805b601f840160051c820191505b81811015611fdd575f815560010161263e565b815167ffffffffffffffff81111561266b5761266b6121fc565b61267f81612679845461259f565b8461260d565b602080601f8311600181146126b2575f841561269b5750858301515b5f19600386901b1c1916600185901b178555612709565b5f85815260208120601f198616915b828110156126e0578886015182559484019460019091019084016126c1565b50858210156126fd57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60208082526027908201527f506879676974616c413a55736572206973206e6f74206f776e6572206f72206f6040820152663832b930ba37b960c91b606082015260800190565b6001600160a01b0385168152602081018490526080810161277c60408301856122dc565b82606083015295945050505050565b5f6020828403121561279b575f80fd5b5051919050565b5f602082840312156127b2575f80fd5b81516116a28161209f565b5f83516127ce818460208801612128565b8351908301906127e2818360208801612128565b01949350505050565b5f82516127fc818460208701612128565b9190910192915050565b60018060a01b0385168152836020820152608060408201525f61282c608083018561214a565b905082606083015295945050505050565b5f8161284b5761284b612532565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906128849083018461214a565b9695505050505050565b5f6020828403121561289e575f80fd5b81516116a2816120ce56fea2646970667358221220db0960cb721ba3839f31f2a8d14d26088695aaaeed206a218798e325e65f04ca64736f6c63430008180033"; type PhygitalAConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/RewardToken__factory.ts b/typechain-types/factories/RewardToken__factory.ts new file mode 100644 index 0000000..4d2d5c6 --- /dev/null +++ b/typechain-types/factories/RewardToken__factory.ts @@ -0,0 +1,847 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { RewardToken, RewardTokenInterface } from "../RewardToken"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "baseURI", + type: "string", + }, + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_symbol", + type: "string", + }, + { + internalType: "address", + name: "tradeHubAddress", + type: "address", + }, + { + internalType: "address", + name: "flowContract", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC1155InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC1155InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "idsLength", + type: "uint256", + }, + { + internalType: "uint256", + name: "valuesLength", + type: "uint256", + }, + ], + name: "ERC1155InvalidArrayLength", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "ERC1155InvalidOperator", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC1155InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC1155InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC1155MissingApprovalForAll", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "ApprovalForAll", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenID", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "creator", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "metadataUri", + type: "string", + }, + ], + name: "RewardTokenCreated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "ownerOrApproved", + type: "address", + }, + ], + name: "RewardTokenDestroyed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256[]", + name: "ids", + type: "uint256[]", + }, + { + indexed: false, + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + ], + name: "TransferBatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "TransferSingle", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "value", + type: "string", + }, + { + indexed: true, + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "URI", + type: "event", + }, + { + inputs: [], + name: "Counter", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "accessMasterAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "accounts", + type: "address[]", + }, + { + internalType: "uint256[]", + name: "ids", + type: "uint256[]", + }, + ], + name: "balanceOfBatch", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "phygitalcontractAddr", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "string", + name: "_uri", + type: "string", + }, + ], + name: "createFanToken", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "phygitalcontractAddr", + type: "address", + }, + { + internalType: "address", + name: "creator", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "string", + name: "_uri", + type: "string", + }, + ], + name: "delegateAssetCreation", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "destroyAsset", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "exists", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "phygitalToRewardId", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256[]", + name: "ids", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "safeBatchTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "newuri", + type: "string", + }, + ], + name: "setURI", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tradeHub", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "uri", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "version", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801562000010575f80fd5b5060405162001f5638038062001f56833981016040819052620000339162000190565b846200003f81620000a1565b5060056200004e8582620002ca565b5060066200005d8482620002ca565b50600780546001600160a01b039384166001600160a01b031991821617909155600c8054929093169181168217909255600880549092161790555062000396915050565b6002620000af8282620002ca565b5050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000d7575f80fd5b81516001600160401b0380821115620000f457620000f4620000b3565b604051601f8301601f19908116603f011681019082821181831017156200011f576200011f620000b3565b81604052838152602092508660208588010111156200013c575f80fd5b5f91505b838210156200015f578582018301518183018401529082019062000140565b5f602085830101528094505050505092915050565b80516001600160a01b03811681146200018b575f80fd5b919050565b5f805f805f60a08688031215620001a5575f80fd5b85516001600160401b0380821115620001bc575f80fd5b620001ca89838a01620000c7565b96506020880151915080821115620001e0575f80fd5b620001ee89838a01620000c7565b9550604088015191508082111562000204575f80fd5b506200021388828901620000c7565b935050620002246060870162000174565b9150620002346080870162000174565b90509295509295909350565b600181811c908216806200025557607f821691505b6020821081036200027457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002c557805f5260205f20601f840160051c81016020851015620002a15750805b601f840160051c820191505b81811015620002c2575f8155600101620002ad565b50505b505050565b81516001600160401b03811115620002e657620002e6620000b3565b620002fe81620002f7845462000240565b846200027a565b602080601f83116001811462000334575f84156200031c5750858301515b5f19600386901b1c1916600185901b1785556200038e565b5f85815260208120601f198616915b82811015620003645788860151825594840194600190910190840162000343565b50858210156200038257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b611bb280620003a45f395ff3fe608060405234801561000f575f80fd5b506004361061013c575f3560e01c806354fd4d50116100b4578063a4b1105211610079578063a4b11052146102c8578063bd85b039146102db578063d5e57018146102fa578063e985e9c51461030d578063edf8706f14610320578063f242432a14610333575f80fd5b806354fd4d50146102565780635e3eeef9146102705780637ab007151461029a57806395d89b41146102ad578063a22cb465146102b5575f80fd5b80630e89341c116101055780630e89341c146101de57806318160ddd146101f15780632eb2c2d6146101f95780634e1273f41461020c5780634eeca0761461022c5780634f558e7914610235575f80fd5b8062fdd58e1461014057806301ffc9a71461016657806302fe53051461018957806306fdde031461019e5780630aa7c854146101b3575b5f80fd5b61015361014e366004611323565b610346565b6040519081526020015b60405180910390f35b610179610174366004611360565b61036d565b604051901515815260200161015d565b61019c610197366004611433565b610377565b005b6101a661044c565b60405161015d91906114b0565b6008546101c6906001600160a01b031681565b6040516001600160a01b03909116815260200161015d565b6101a66101ec3660046114c2565b6104d8565b600454610153565b61019c610207366004611568565b610577565b61021f61021a36600461160b565b6105de565b60405161015d91906116ff565b61015360095481565b6101796102433660046114c2565b5f90815260036020526040902054151590565b61025e600181565b60405160ff909116815260200161015d565b61015361027e366004611323565b600b60209081525f928352604080842090915290825290205481565b61019c6102a8366004611711565b6106a9565b6101a6610769565b61019c6102c336600461173e565b610776565b6007546101c6906001600160a01b031681565b6101536102e93660046114c2565b5f9081526003602052604090205490565b610153610308366004611773565b610785565b61017961031b3660046117c6565b61087a565b61015361032e3660046117f7565b6108a7565b61019c610341366004611888565b610a61565b5f818152602081815260408083206001600160a01b03861684529091529020545b92915050565b5f61036782610ac0565b600c546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156103cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ef91906118e8565b6104405760405162461bcd60e51b815260206004820152601a60248201527f526577617264546f6b656e3a20556e617574686f72697a65642100000000000060448201526064015b60405180910390fd5b61044981610b0f565b50565b6005805461045990611903565b80601f016020809104026020016040519081016040528092919081815260200182805461048590611903565b80156104d05780601f106104a7576101008083540402835291602001916104d0565b820191905f5260205f20905b8154815290600101906020018083116104b357829003601f168201915b505050505081565b5f818152600a602052604090208054606091906104f490611903565b80601f016020809104026020016040519081016040528092919081815260200182805461052090611903565b801561056b5780601f106105425761010080835404028352916020019161056b565b820191905f5260205f20905b81548152906001019060200180831161054e57829003601f168201915b50505050509050919050565b336001600160a01b03861681148015906105985750610596868261087a565b155b156105c95760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610437565b6105d68686868686610b1b565b505050505050565b6060815183511461060f5781518351604051635b05999160e01b815260048101929092526024820152604401610437565b5f835167ffffffffffffffff81111561062a5761062a611382565b604051908082528060200260200182016040528015610653578160200160208202803683370190505b5090505f5b84518110156106a15760208082028601015161067c90602080840287010151610346565b82828151811061068e5761068e61193b565b6020908102919091010152600101610658565b509392505050565b806106b43384610346565b1461071c5760405162461bcd60e51b815260206004820152603260248201527f526577617264546f6b656e3a2043616c6c6572206973206e6f7420746f6b656e604482015271081bdddb995c881bdc88185c1c1c9bdd995960721b6064820152608401610437565b610727338383610b80565b817f77ae73e9fd17485abbf01dffbf650cf3ffb79771e6e23a50beffcc20f5ab2107336040516001600160a01b03909116815260200160405180910390a25050565b6006805461045990611903565b610781338383610be6565b5050565b6001600160a01b0385165f908152600b602090815260408083208684529091528120548190156107d857506001600160a01b0386165f908152600b602090815260408083208784529091529020546107f2565b60098054905f6107e783611963565b919050555060095490505b6107fe33828887610c7a565b5f818152600a6020526040902061081584826119c4565b5060075461082d906001600160a01b03166001610776565b85336001600160a01b0316827fec01398bf72ebae4ad81f8babbd6de07baf966f47c9998ce8c6e3ff8b8d2b5748660405161086891906114b0565b60405180910390a49695505050505050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205460ff1690565b600c545f906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156108fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092191906118e8565b61096d5760405162461bcd60e51b815260206004820152601a60248201527f526577617264546f6b656e3a20556e617574686f72697a6564210000000000006044820152606401610437565b6001600160a01b0387165f908152600b60209081526040808320888452909152812054156109be57506001600160a01b0387165f908152600b602090815260408083208884529091529020546109d8565b60098054905f6109cd83611963565b919050555060095490505b6109e487828787610c7a565b5f818152600a602052604090206109fb84826119c4565b50600754610a13906001600160a01b03166001610776565b84336001600160a01b0316827fec01398bf72ebae4ad81f8babbd6de07baf966f47c9998ce8c6e3ff8b8d2b57486604051610a4e91906114b0565b60405180910390a4979650505050505050565b336001600160a01b0386168114801590610a825750610a80868261087a565b155b15610ab35760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610437565b6105d68686868686610cd5565b5f6001600160e01b03198216636cdb3d1360e11b1480610af057506001600160e01b031982166303a24d0760e21b145b8061036757506301ffc9a760e01b6001600160e01b0319831614610367565b600261078182826119c4565b6001600160a01b038416610b4457604051632bfa23e760e11b81525f6004820152602401610437565b6001600160a01b038516610b6c57604051626a0d4560e21b81525f6004820152602401610437565b610b798585858585610d61565b5050505050565b6001600160a01b038316610ba857604051626a0d4560e21b81525f6004820152602401610437565b604080516001808252602082018590528183019081526060820184905260a082019092525f60808201818152919291610b7991879185908590610d61565b6001600160a01b038216610c0e5760405162ced3e160e81b81525f6004820152602401610437565b6001600160a01b038381165f81815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610ca357604051632bfa23e760e11b81525f6004820152602401610437565b604080516001808252602082018690528183019081526060820185905260808201909252906105d65f87848487610d61565b6001600160a01b038416610cfe57604051632bfa23e760e11b81525f6004820152602401610437565b6001600160a01b038516610d2657604051626a0d4560e21b81525f6004820152602401610437565b60408051600180825260208201869052818301908152606082018590526080820190925290610d588787848487610d61565b50505050505050565b610d6d85858585610db4565b6001600160a01b03841615610b795782513390600103610da65760208481015190840151610d9f838989858589610ef1565b50506105d6565b6105d6818787878787611012565b610dc0848484846110f9565b6001600160a01b038416610e64575f805b8351811015610e4b575f838281518110610ded57610ded61193b565b602002602001015190508060035f878581518110610e0d57610e0d61193b565b602002602001015181526020019081526020015f205f828254610e309190611a80565b90915550610e4090508184611a80565b925050600101610dd1565b508060045f828254610e5d9190611a80565b9091555050505b6001600160a01b038316610eeb575f805b8351811015610edf575f838281518110610e9157610e9161193b565b602002602001015190508060035f878581518110610eb157610eb161193b565b60209081029190910181015182528101919091526040015f2080549190910390559190910190600101610e75565b50600480549190910390555b50505050565b6001600160a01b0384163b156105d65760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610f359089908990889088908890600401611a93565b6020604051808303815f875af1925050508015610f6f575060408051601f3d908101601f19168201909252610f6c91810190611ad7565b60015b610fd6573d808015610f9c576040519150601f19603f3d011682016040523d82523d5f602084013e610fa1565b606091505b5080515f03610fce57604051632bfa23e760e11b81526001600160a01b0386166004820152602401610437565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610d5857604051632bfa23e760e11b81526001600160a01b0386166004820152602401610437565b6001600160a01b0384163b156105d65760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906110569089908990889088908890600401611af2565b6020604051808303815f875af1925050508015611090575060408051601f3d908101601f1916820190925261108d91810190611ad7565b60015b6110bd573d808015610f9c576040519150601f19603f3d011682016040523d82523d5f602084013e610fa1565b6001600160e01b0319811663bc197c8160e01b14610d5857604051632bfa23e760e11b81526001600160a01b0386166004820152602401610437565b80518251146111285781518151604051635b05999160e01b815260048101929092526024820152604401610437565b335f5b835181101561122a576020818102858101820151908501909101516001600160a01b038816156111dc575f828152602081815260408083206001600160a01b038c168452909152902054818110156111b6576040516303dee4c560e01b81526001600160a01b038a166004820152602481018290526044810183905260648101849052608401610437565b5f838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615611220575f828152602081815260408083206001600160a01b038b1684529091528120805483929061121a908490611a80565b90915550505b505060010161112b565b5082516001036112aa5760208301515f906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161129b929190918252602082015260400190565b60405180910390a45050610b79565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516112f9929190611b4f565b60405180910390a45050505050565b80356001600160a01b038116811461131e575f80fd5b919050565b5f8060408385031215611334575f80fd5b61133d83611308565b946020939093013593505050565b6001600160e01b031981168114610449575f80fd5b5f60208284031215611370575f80fd5b813561137b8161134b565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156113bf576113bf611382565b604052919050565b5f82601f8301126113d6575f80fd5b813567ffffffffffffffff8111156113f0576113f0611382565b611403601f8201601f1916602001611396565b818152846020838601011115611417575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611443575f80fd5b813567ffffffffffffffff811115611459575f80fd5b611465848285016113c7565b949350505050565b5f81518084525f5b8181101561149157602081850181015186830182015201611475565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61137b602083018461146d565b5f602082840312156114d2575f80fd5b5035919050565b5f67ffffffffffffffff8211156114f2576114f2611382565b5060051b60200190565b5f82601f83011261150b575f80fd5b8135602061152061151b836114d9565b611396565b8083825260208201915060208460051b870101935086841115611541575f80fd5b602086015b8481101561155d5780358352918301918301611546565b509695505050505050565b5f805f805f60a0868803121561157c575f80fd5b61158586611308565b945061159360208701611308565b9350604086013567ffffffffffffffff808211156115af575f80fd5b6115bb89838a016114fc565b945060608801359150808211156115d0575f80fd5b6115dc89838a016114fc565b935060808801359150808211156115f1575f80fd5b506115fe888289016113c7565b9150509295509295909350565b5f806040838503121561161c575f80fd5b823567ffffffffffffffff80821115611633575f80fd5b818501915085601f830112611646575f80fd5b8135602061165661151b836114d9565b82815260059290921b84018101918181019089841115611674575f80fd5b948201945b838610156116995761168a86611308565b82529482019490820190611679565b965050860135925050808211156116ae575f80fd5b506116bb858286016114fc565b9150509250929050565b5f815180845260208085019450602084015f5b838110156116f4578151875295820195908201906001016116d8565b509495945050505050565b602081525f61137b60208301846116c5565b5f8060408385031215611722575f80fd5b50508035926020909101359150565b8015158114610449575f80fd5b5f806040838503121561174f575f80fd5b61175883611308565b9150602083013561176881611731565b809150509250929050565b5f805f805f60a08688031215611787575f80fd5b61179086611308565b94506020860135935060408601359250606086013567ffffffffffffffff808211156117ba575f80fd5b6115dc89838a016113c7565b5f80604083850312156117d7575f80fd5b6117e083611308565b91506117ee60208401611308565b90509250929050565b5f805f805f8060c0878903121561180c575f80fd5b61181587611308565b955061182360208801611308565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561184d575f80fd5b6118598a838b016113c7565b935060a089013591508082111561186e575f80fd5b5061187b89828a016113c7565b9150509295509295509295565b5f805f805f60a0868803121561189c575f80fd5b6118a586611308565b94506118b360208701611308565b93506040860135925060608601359150608086013567ffffffffffffffff8111156118dc575f80fd5b6115fe888289016113c7565b5f602082840312156118f8575f80fd5b815161137b81611731565b600181811c9082168061191757607f821691505b60208210810361193557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016119745761197461194f565b5060010190565b601f8211156119bf57805f5260205f20601f840160051c810160208510156119a05750805b601f840160051c820191505b81811015610b79575f81556001016119ac565b505050565b815167ffffffffffffffff8111156119de576119de611382565b6119f2816119ec8454611903565b8461197b565b602080601f831160018114611a25575f8415611a0e5750858301515b5f19600386901b1c1916600185901b1785556105d6565b5f85815260208120601f198616915b82811015611a5357888601518255948401946001909101908401611a34565b5085821015611a7057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156103675761036761194f565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90611acc9083018461146d565b979650505050505050565b5f60208284031215611ae7575f80fd5b815161137b8161134b565b6001600160a01b0386811682528516602082015260a0604082018190525f90611b1d908301866116c5565b8281036060840152611b2f81866116c5565b90508281036080840152611b43818561146d565b98975050505050505050565b604081525f611b6160408301856116c5565b8281036020840152611b7381856116c5565b9594505050505056fea2646970667358221220591c579e74022b2c6f5dd17bf196b12418e3a3062dd862ff1b5c3a0cb22c39cc64736f6c63430008180033"; + +type RewardTokenConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: RewardTokenConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class RewardToken__factory extends ContractFactory { + constructor(...args: RewardTokenConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + this.contractName = "RewardToken"; + } + + deploy( + baseURI: string, + _name: string, + _symbol: string, + tradeHubAddress: string, + flowContract: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + baseURI, + _name, + _symbol, + tradeHubAddress, + flowContract, + overrides || {} + ) as Promise; + } + getDeployTransaction( + baseURI: string, + _name: string, + _symbol: string, + tradeHubAddress: string, + flowContract: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + baseURI, + _name, + _symbol, + tradeHubAddress, + flowContract, + overrides || {} + ); + } + attach(address: string): RewardToken { + return super.attach(address) as RewardToken; + } + connect(signer: Signer): RewardToken__factory { + return super.connect(signer) as RewardToken__factory; + } + static readonly contractName: "RewardToken"; + public readonly contractName: "RewardToken"; + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): RewardTokenInterface { + return new utils.Interface(_abi) as RewardTokenInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): RewardToken { + return new Contract(address, _abi, signerOrProvider) as RewardToken; + } +} diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts index 9a9d5bd..bf8e761 100644 --- a/typechain-types/hardhat.d.ts +++ b/typechain-types/hardhat.d.ts @@ -252,6 +252,10 @@ declare module "hardhat/types/runtime" { name: "PhygitalA", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "RewardToken", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractFactory( name: "SignatureSeries", signerOrOptions?: ethers.Signer | FactoryOptions @@ -561,6 +565,11 @@ declare module "hardhat/types/runtime" { address: string, signer?: ethers.Signer ): Promise; + getContractAt( + name: "RewardToken", + address: string, + signer?: ethers.Signer + ): Promise; getContractAt( name: "SignatureSeries", address: string, diff --git a/typechain-types/index.ts b/typechain-types/index.ts index 9136113..1020c1b 100644 --- a/typechain-types/index.ts +++ b/typechain-types/index.ts @@ -61,6 +61,7 @@ export type { FusionSeries } from "./FusionSeries"; export type { InstaGen } from "./InstaGen"; export type { Phygital } from "./Phygital"; export type { PhygitalA } from "./PhygitalA"; +export type { RewardToken } from "./RewardToken"; export type { SignatureSeries } from "./SignatureSeries"; export type { TradeHub } from "./TradeHub"; @@ -124,5 +125,6 @@ export { FusionSeries__factory } from "./factories/FusionSeries__factory"; export { InstaGen__factory } from "./factories/InstaGen__factory"; export { Phygital__factory } from "./factories/Phygital__factory"; export { PhygitalA__factory } from "./factories/PhygitalA__factory"; +export { RewardToken__factory } from "./factories/RewardToken__factory"; export { SignatureSeries__factory } from "./factories/SignatureSeries__factory"; export { TradeHub__factory } from "./factories/TradeHub__factory";