diff --git a/contracts/phygital/Phygital.sol b/contracts/phygital/Phygital.sol index 9085d2d..0cffe2c 100644 --- a/contracts/phygital/Phygital.sol +++ b/contracts/phygital/Phygital.sol @@ -59,9 +59,9 @@ contract Phygital is Context, ERC721Enumerable, ERC2981, IERC4907 { // Optional mapping for token URIs mapping(uint256 => string) private _tokenURIs; - mapping(uint256 => bytes16) public nfcId; + mapping(uint256 => bytes16) public phygitalID; - mapping(bytes16 => bool) public nfcCheck; + mapping(bytes16 => bool) public assetStatus; IACCESSMASTER flowRoles; @@ -111,14 +111,12 @@ contract Phygital is Context, ERC721Enumerable, ERC2981, IERC4907 { constructor( string memory name, string memory symbol, - uint256 _nftPrice, address tradeHubAddress, address flowContract ) ERC721(name, symbol) { flowRoles = IACCESSMASTER(flowContract); tradeHub = tradeHubAddress; accessMasterAddress = flowContract; - nftPrice = _nftPrice; } /// @notice transferring funds @@ -152,16 +150,16 @@ contract Phygital is Context, ERC721Enumerable, ERC2981, IERC4907 { function createAsset( string memory metadataURI, uint96 royaltyPercentBasisPoint, - bytes16 _nfcId + bytes16 _phygitalID ) public onlyCreator returns (uint256) { // We cannot just use balanceOf to create the new tokenId because tokens // can be burned (destroyed), so we need a separate counter. - require(!nfcCheck[_nfcId], "Phygital: NFC Tag is already stored!"); + require(!assetStatus[_phygitalID], "Phygital: NFC Tag is already stored!"); Counter++; uint256 currentTokenID = Counter; - nfcId[currentTokenID] = _nfcId; - nfcCheck[_nfcId] = true; + phygitalID[currentTokenID] = _phygitalID; + assetStatus[_phygitalID] = true; _safeMint(_msgSender(), currentTokenID); _setTokenURI(currentTokenID, metadataURI); @@ -197,16 +195,16 @@ contract Phygital is Context, ERC721Enumerable, ERC2981, IERC4907 { address creator, string memory metadataURI, uint96 royaltyPercentBasisPoint, - bytes16 _nfcId + bytes16 _phygitalID ) public onlyOperator returns (uint256) { // We cannot just use balanceOf to create the new tokenId because tokens // can be burned (destroyed), so we need a separate counter. - require(!nfcCheck[_nfcId], "Phygital: NFC Tag is already stored!"); + require(!assetStatus[_phygitalID], "Phygital: NFC Tag is already stored!"); Counter++; uint256 currentTokenID = Counter; - nfcId[currentTokenID] = _nfcId; - nfcCheck[_nfcId] = true; + phygitalID[currentTokenID] = _phygitalID; + assetStatus[_phygitalID] = true; _safeMint(creator, currentTokenID); _setTokenURI(currentTokenID, metadataURI); @@ -333,18 +331,6 @@ contract Phygital is Context, ERC721Enumerable, ERC2981, IERC4907 { /** Getter Functions **/ - /** - * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. - */ - function tokenURI( - uint256 tokenId - ) public view virtual override returns (string memory) { - require(_exists(tokenId), "Phygital: Non-Existent Asset"); - string memory _tokenURI = _tokenURIs[tokenId]; - - return _tokenURI; - } - /************* Rental(ERC4907) ***************** */ /// @dev IERC4907 implementation function userOf(uint256 tokenId) public view returns (address) { @@ -371,6 +357,20 @@ contract Phygital is Context, ERC721Enumerable, ERC2981, IERC4907 { ///////////////////////////////////////////////// + /** + * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. + */ + function tokenURI( + uint256 tokenId + ) public view virtual override returns (string memory) { + require(_exists(tokenId), "SignatureSeries: Non-Existent Asset"); + string memory _tokenURI = _tokenURIs[tokenId]; + + return _tokenURI; + } + + + function _beforeTokenTransfer( address from, address to, diff --git a/contracts/phygital/PhygitalA.sol b/contracts/phygital/PhygitalA.sol index 76f1c35..b6267c2 100644 --- a/contracts/phygital/PhygitalA.sol +++ b/contracts/phygital/PhygitalA.sol @@ -65,9 +65,9 @@ contract PhygitalA is mapping(uint256 => string) private _tokenURIs; - mapping(uint256 => bytes16) public nfcId; + mapping(uint256 => bytes16) public phygitalID; - mapping(bytes16 => bool) public nfcCheck; + mapping(bytes16 => bool) public assetStatus; // INTERFACES IACCESSMASTER flowRoles; @@ -164,15 +164,14 @@ contract PhygitalA is return (prevQuantity, quantity); } - /// @dev to register Asset NFC ID TO the tokenID function registerAssetId( uint256 tokenId, - bytes16 _nfcId + bytes16 _phygitalID ) external onlyOperator { - require(!nfcCheck[_nfcId],"PhygitalA: It's already registerd"); - nfcId[tokenId] = _nfcId; - nfcCheck[_nfcId] = true; + require(!assetStatus[_phygitalID],"PhygitalA: It's already registerd"); + phygitalID[tokenId] = _phygitalID; + assetStatus[_phygitalID] = true; } /** diff --git a/hardhat.config.ts b/hardhat.config.ts index d57a42c..0754a1d 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,64 +1,84 @@ -require("dotenv").config(); +require("dotenv").config() import dotenv from "dotenv" -dotenv.config(); +dotenv.config() import "@nomiclabs/hardhat-etherscan" import "@nomiclabs/hardhat-truffle5" import "@nomiclabs/hardhat-waffle" import "hardhat-gas-reporter" import "solidity-coverage" -import '@typechain/hardhat' -import '@nomiclabs/hardhat-ethers' +import "@typechain/hardhat" +import "@nomiclabs/hardhat-ethers" import { task } from "hardhat/config" // This is a sample Hardhat task. To learn how to create your own go to // https://hardhat.org/guides/create-task.html task("accounts", "Prints the list of accounts", async (taskArgs, hre) => { - const accounts = await hre.ethers.getSigners(); - - for (const account of accounts) { - console.log(account.address); - } -}); + const accounts = await hre.ethers.getSigners() + for (const account of accounts) { + console.log(account.address) + } +}) // Testnet: sepolia, mumbai, bnbTest , arbGoerli , optiGoerli, baseGoerli // Mainnet: Ethereum, Polygon,, Binance ,Arbitrum, Optimism,Base // API_KEY & PRIVATE_KEY // TESTNET -const MATICMUM_RPC_URL = process.env.MATICMUM_RPC_URL || "https://polygon-mumbai.g.alchemy.com/v2/api-key" +const MATICMUM_RPC_URL = + process.env.MATICMUM_RPC_URL || + "https://polygon-mumbai.g.alchemy.com/v2/api-key" const SEPOLIA_RPC_URL = process.env.SEPOLIA_RPC_URL || "https://ETH-RPC-URL" -const BNB_TESTNET_RPC_URL = process.env.BNB_TESTNET_RPC_URL || "https://bsc-testnet.public.blastapi.io" -const ARBITRUM_GOERLI_RPC_URL = process.env.ARBITRUM_GOERLI_RPC_URL || "https://arbitrum-goerli.infura.io/v3/api-key" -const OPTIMISM_GOERLI_RPC_URL = process.env.OPTIMISM_GOERLI_RPC_URL || "https://optimism-goerli.infura.io/v3/api-key" -const BASE_GOERLI_RPC_URL = process.env.BASE_GOERLI_RPC_URL || "https://goerli.base.org" -const SCROLL_SEPOLIA_RPC_URL = process.env.SCROLL_SEPOLIA_RPC_URL || "https://scroll-testnet-public.unifra.io" -const POLYGON_ZKEVM_TESTNET_RPC_URL = process.env.POLYGON_ZKEVM_TESTNET_RPC_URL || "https://rpc.public.zkevm-test.net" +const ARBITRUM_GOERLI_RPC_URL = + process.env.ARBITRUM_GOERLI_RPC_URL || + "https://arbitrum-goerli.infura.io/v3/api-key" +const OPTIMISM_GOERLI_RPC_URL = + process.env.OPTIMISM_GOERLI_RPC_URL || + "https://optimism-goerli.infura.io/v3/api-key" +const BASE_GOERLI_RPC_URL = + process.env.BASE_GOERLI_RPC_URL || "https://goerli.base.org" +const SCROLL_SEPOLIA_RPC_URL = + process.env.SCROLL_SEPOLIA_RPC_URL || + "https://scroll-testnet-public.unifra.io" +const POLYGON_ZKEVM_TESTNET_RPC_URL = + process.env.POLYGON_ZKEVM_TESTNET_RPC_URL || + "https://rpc.public.zkevm-test.net" // MAINNET -const ETHEREUM_RPC_URL = process.env.ETHEREUM_RPC_URL || "https://mainnet.infura.io/v3/api-key" -const POLYGON_RPC_URL = process.env.POLYGON_RPC_URL || "https://polygon-mainnet.g.alchemy.com/v2/api-key" -const BNB_RPC_URL = process.env.BNB_RPC_URL || "https://bsc.blockpi.network/v1/rpc/public" -const ARBITRUM_RPC_URL = process.env.ARBITRUM_RPC_URL || "https://linea-mainnet.infura.io/v3/api-key" -const OPTIMISM_RPC_URL = process.env.OPTIMISM_RPC_URL || "https://filecoin-mainnet.chainstacklabs.com/rpc/v1" -const BASE_RPC_URL = process.env.BASE_RPC_URL || "https://filecoin-mainnet.chainstacklabs.com/rpc/v1" +const ETHEREUM_RPC_URL = + process.env.ETHEREUM_RPC_URL || "https://mainnet.infura.io/v3/api-key" +const POLYGON_RPC_URL = + process.env.POLYGON_RPC_URL || + "https://polygon-mainnet.g.alchemy.com/v2/api-key" +const ARBITRUM_RPC_URL = + process.env.ARBITRUM_RPC_URL || "https://linea-mainnet.infura.io/v3/api-key" +const OPTIMISM_RPC_URL = + process.env.OPTIMISM_RPC_URL || + "https://filecoin-mainnet.chainstacklabs.com/rpc/v1" +const BASE_RPC_URL = + process.env.BASE_RPC_URL || + "https://filecoin-mainnet.chainstacklabs.com/rpc/v1" const SCROLL_RPC_URL = process.env.SCROLL_RPC_URL || "https://rpc.scroll.io" -const POLYGON_ZKEVM_RPC_URL = process.env.POLYGON_ZKEVM_RPC_URL || "https://zkevm-rpc.com" - +const POLYGON_ZKEVM_RPC_URL = + process.env.POLYGON_ZKEVM_RPC_URL || "https://zkevm-rpc.com" -const MNEMONIC = process.env.MNEMONIC || "ajkskjfjksjkf ssfaasff asklkfl klfkas dfklhao asfj sfk klsfjs fkjs" +const MNEMONIC = + process.env.MNEMONIC || + "ajkskjfjksjkf ssfaasff asklkfl klfkas dfklhao asfj sfk klsfjs fkjs" const PRIVATE_KEY = process.env.PRIVATE_KEY -const POLYGONSCAN_API_KEY = process.env.POLYGONSCAN_API_KEY || "lklsdkskldjklgdklkld" +const POLYGONSCAN_API_KEY = + process.env.POLYGONSCAN_API_KEY || "lklsdkskldjklgdklkld" const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY || "Etherscan API key" const BSCSCAN_API_KEY = process.env.BSCSCAN_API_KEY || "BSCscan API Key" const ARBISCAN_API_KEY = process.env.ARBISCAN_API_KEY || "Arbiscan API Key" const OPTISCAN_API_KEY = process.env.OPTISCAN_API_KEY || "Optiscan API Key" const BASESCAN_API_KEY = process.env.BASESCAN_API_KEY || "Basescan API Key" -const SCROLLSCAN_API_KEY = process.env.SCROLLSCAN_API_KEY || "ScrollScan Api Key" -const POLYGON_ZKEVM_API_KEY = process.env.POLYGON_ZKEVM_API_KEY || "Polygon Zkevm Api Key" - +const SCROLLSCAN_API_KEY = + process.env.SCROLLSCAN_API_KEY || "ScrollScan Api Key" +const POLYGON_ZKEVM_API_KEY = + process.env.POLYGON_ZKEVM_API_KEY || "Polygon Zkevm Api Key" // You need to export an object to set up your config // Go to https://hardhat.org/config/ to learn more @@ -67,201 +87,183 @@ const POLYGON_ZKEVM_API_KEY = process.env.POLYGON_ZKEVM_API_KEY || "Polygon Zkev * @type import('hardhat/config').HardhatUserConfig */ module.exports = { - solidity: { - version: "0.8.17", - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - defaultNetwork: "hardhat", - networks: { - hardhat: { - initialBaseFeePerGas: 0, // workaround from https://github.com/sc-forks/solidity-coverage/issues/652#issuecomment-896330136 . Remove when that issue is closed. - }, - // TESTNET NETWORKS - maticmum: { - networkId: 80001, - url: MATICMUM_RPC_URL, - // accounts: [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, - }, - sepolia: { - networkId: 11155111, - url: SEPOLIA_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, - }, - - bnbTest :{ - networkId: 97, - url: BNB_TESTNET_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - } - }, - arbiGoerli :{ - networkId: 421613, - url: ARBITRUM_GOERLI_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, - }, - optiGoerli :{ - networkId: 420, - url: OPTIMISM_GOERLI_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - } - }, - baseGoerli :{ - networkId: 84531, - url: BASE_GOERLI_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - } - }, - scrollTestnet : { - networkId: 534351, - url : SCROLL_SEPOLIA_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, - }, - polygonZkevmTestnet :{ - networkId: 1442, - url : POLYGON_ZKEVM_TESTNET_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, - }, - // MAINNET NETWORKS - ethereum: { - networkId: 1, - url: ETHEREUM_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, - }, - polygon: { - networkId: 137, - url: POLYGON_RPC_URL, - // accounts: [`0x${ETH_PRIVATE_KEY}`], - accounts: { - mnemonic: MNEMONIC, - }, - }, - bnb:{ - networkId: 56, - url: BNB_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - } - }, - arbitrum :{ - networkId: 42161, - url: ARBITRUM_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, + solidity: { + version: "0.8.17", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, }, - optimism :{ - networkId: 10, - url: OPTIMISM_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - } + defaultNetwork: "hardhat", + networks: { + hardhat: { + initialBaseFeePerGas: 0, // workaround from https://github.com/sc-forks/solidity-coverage/issues/652#issuecomment-896330136 . Remove when that issue is closed. + }, + // TESTNET NETWORKS + maticmum: { + networkId: 80001, + url: MATICMUM_RPC_URL, + // accounts: [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + sepolia: { + networkId: 11155111, + url: SEPOLIA_RPC_URL, + // accounts: [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + arbiGoerli: { + networkId: 421613, + url: ARBITRUM_GOERLI_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + optiGoerli: { + networkId: 420, + url: OPTIMISM_GOERLI_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + baseGoerli: { + networkId: 84531, + url: BASE_GOERLI_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + scrollTestnet: { + networkId: 534351, + url: SCROLL_SEPOLIA_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + polygonZkevmTestnet: { + networkId: 1442, + url: POLYGON_ZKEVM_TESTNET_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + // MAINNET NETWORKS + ethereum: { + networkId: 1, + url: ETHEREUM_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + polygon: { + networkId: 137, + url: POLYGON_RPC_URL, + // accounts: [`0x${ETH_PRIVATE_KEY}`], + accounts: { + mnemonic: MNEMONIC, + }, + }, + arbitrum: { + networkId: 42161, + url: ARBITRUM_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + optimism: { + networkId: 10, + url: OPTIMISM_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + base: { + networkId: 8453, + url: BASE_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + scroll: { + networkId: 534352, + url: SCROLL_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, + polygonZkevm: { + networkId: 1101, + url: POLYGON_ZKEVM_RPC_URL, + // accounts : [PRIVATE_KEY], + accounts: { + mnemonic: MNEMONIC, + }, + }, }, - base :{ - networkId: 8453, - url: BASE_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - } + gasReporter: { + enabled: process.env.REPORT_GAS !== undefined, + currency: "USD", }, - scroll: { - networkId:534352, - url : SCROLL_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, + etherscan: { + apiKey: { + polygonMumbai: POLYGONSCAN_API_KEY, + sepolia: ETHERSCAN_API_KEY, + optimisticGoerli: OPTISCAN_API_KEY, + arbitrumGoerli: ARBISCAN_API_KEY, + baseGoerli: BASESCAN_API_KEY, + scrollTestnet: SCROLLSCAN_API_KEY, + polygonzKevmTestnet: POLYGON_ZKEVM_API_KEY, + }, + customChains: [ + { + network: "baseGoerli", + chainId: 84531, + urls: { + apiURL: "https://api-goerli.basescan.org/api", + browserURL: "https://goerli.basescan.org", + }, + }, + { + network: "scrollTestnet", + chainId: 534351, + urls: { + apiURL: "https://scroll.l2scan.co/api", + browserURL: "https://scroll.l2scan.co", + }, + }, + { + network: "polygonzKevmTestnet", + chainId: 1442, + urls: { + apiURL: "https://api-zkevm.polygonscan.com/api", + browserURL: "https://testnet-zkevm.polygonscan.com", + }, + }, + ], }, - polygonZkevm :{ - networkId: 1101, - url : POLYGON_ZKEVM_RPC_URL, - // accounts : [PRIVATE_KEY], - accounts: { - mnemonic: MNEMONIC, - }, + paths: { + sources: "./contracts", + tests: "./test", + cache: "./cache", + artifacts: "./artifacts", }, - }, - gasReporter: { - enabled: process.env.REPORT_GAS !== undefined, - currency: "USD", - }, - etherscan: { - apiKey: { - polygonMumbai : POLYGONSCAN_API_KEY, - sepolia : ETHERSCAN_API_KEY, - bscTestnet : BSCSCAN_API_KEY, - optimisticGoerli: OPTISCAN_API_KEY, - arbitrumGoerli: ARBISCAN_API_KEY, - baseGoerli: BASESCAN_API_KEY, - scrollTestnet : SCROLLSCAN_API_KEY, - polygonzKevmTestnet : POLYGON_ZKEVM_API_KEY + mocha: { + timeout: 20000, }, - customChains: [ - { - network: "baseGoerli", - chainId: 84531, - urls: { - apiURL: "https://api-goerli.basescan.org/api", - browserURL: "https://goerli.basescan.org" - } - }, - { - network: "scrollTestnet", - chainId: 534351, - urls: { - apiURL: "https://scroll.l2scan.co/api", - browserURL: "https://scroll.l2scan.co" - } - }, - { - network: "polygonzKevmTestnet", - chainId: 1442, - urls: { - apiURL: "https://api-zkevm.polygonscan.com/api", - browserURL: "https://testnet-zkevm.polygonscan.com" - } - } - ] - }, - paths: { - sources: "./contracts", - tests: "./test", - cache: "./cache", - artifacts: "./artifacts", - }, - mocha: { - timeout: 20000, - }, -}; \ No newline at end of file +} diff --git a/package.json b/package.json index 512a6c7..00f23d2 100644 --- a/package.json +++ b/package.json @@ -10,15 +10,14 @@ "coverage": "hardhat coverage", "deploy": "hardhat run scripts/deploy.ts --network $NETWORK", "compile": "hardhat compile", - "launch":"hardhat run scripts/launch/launch.js", - "launchMumbai" : "hardhat run scripts/launch/launch.js --network maticmum", - "launchSepolia" : "hardhat run scripts/launch/launch.js --network sepolia", - "launchBNBTest" : "hardhat run scripts/launch/launch.js --network bnbTest", - "launchFilCalibration" : "hardhat run scripts/launch/launch.js --network filecoinCalibaration", - "launchLineaGoerli" : "hardhat run scripts/launch/launch.js --network lineaGoerli", - "contractAddress" : "hardhat run scripts/contractAddress.js", - "revokeRole" : "hardhat run scripts/revokeRole.js" - + "launch": "hardhat run scripts/launch/launch.js", + "launchMumbai": "hardhat run scripts/launch/launch.js --network maticmum", + "launchSepolia": "hardhat run scripts/launch/launch.js --network sepolia", + "launchBNBTest": "hardhat run scripts/launch/launch.js --network bnbTest", + "launchFilCalibration": "hardhat run scripts/launch/launch.js --network filecoinCalibaration", + "launchLineaGoerli": "hardhat run scripts/launch/launch.js --network lineaGoerli", + "contractAddress": "hardhat run scripts/contractAddress.js", + "revokeRole": "hardhat run scripts/revokeRole.js" }, "devDependencies": { "@nomiclabs/hardhat-ethers": "^2.0.4", diff --git a/scripts/launch/README.md b/scripts/launch/README.md index 475bb2b..bfada5e 100644 --- a/scripts/launch/README.md +++ b/scripts/launch/README.md @@ -123,6 +123,37 @@ The JSON file should have the following format: } ``` +`Phygital` + +```shell +{ + "contractName" : "Phygital", + "constructorParams":{ + "param1": "Alice Clothing", + "param2" : "AC", + "param3" : "0x3A29EA5Ee6AB0326D72b55837dD9fD45b7a867Dd", - TradeHub + "param4" : "0xc3fE1c3bCCE02d7A115Df2d4737137A15ff830F9" - AccessMaster + } +} +``` +`PhygitalA` + +```shell +{ + "contractName" : "PhygitalA", + "constructorParams":{ + "param1": "Alice Clothing", + "param2" : "AC", + "param3" : "0x3A29EA5Ee6AB0326D72b55837dD9fD45b7a867Dd" , //tradehub + "param4" : "0xc3fE1c3bCCE02d7A115Df2d4737137A15ff830F9", // accessmaster + "param5" : 200, // maxsupply + "param6" : 300, // royalty + "param7" : "www.xyz.com" + } +} +``` + + `FlowSubscription Contract` ```shell diff --git a/scripts/launch/launch.js b/scripts/launch/launch.js index f4428a6..d447a93 100644 --- a/scripts/launch/launch.js +++ b/scripts/launch/launch.js @@ -226,6 +226,62 @@ async function eternalSoulDeploy() { } } +async function phygitalDeploy() { + const constructorParam = jsonContent.constructorParams + const Phygital = await hre.ethers.getContractFactory("Phygital") + const phygital = await Phygital.deploy( + constructorParam.param1, + constructorParam.param2, + constructorParam.param3, + constructorParam.param4 + ) + await phygital.deployed() + console.log("Phygital Deployed to:", phygital.address) + contractAddress = phygital.address + blockNumber = phygital.provider._maxInternalBlockNumber + /// VERIFY + if (hre.network.name != "hardhat") { + await phygital.deployTransaction.wait(6) + await verify(phygital.address, [ + constructorParam.param1, + constructorParam.param2, + constructorParam.param3, + constructorParam.param4, + ]) + } +} + +async function phygitalADeploy() { + const constructorParam = jsonContent.constructorParams + const PhygitalA = await hre.ethers.getContractFactory("PhygitalA") + const phygitala = await PhygitalA.deploy( + constructorParam.param1, + constructorParam.param2, + constructorParam.param3, + constructorParam.param4, + constructorParam.param5, + constructorParam.param6, + constructorParam.param7 + ) + await phygitala.deployed() + console.log("PhygitalA Deployed to:", phygitala.address) + contractAddress = phygitala.address + blockNumber = phygitala.provider._maxInternalBlockNumber + /// VERIFY + if (hre.network.name != "hardhat") { + await phygitala.deployTransaction.wait(6) + await verify(phygitala.address, [ + constructorParam.param1, + constructorParam.param2, + constructorParam.param3, + constructorParam.param4, + constructorParam.param5, + constructorParam.param6, + constructorParam.param7, + ]) + } +} + async function flowSubscriptionDeploy() { const constructorParam = jsonContent.constructorParams const FlowSubscription = await hre.ethers.getContractFactory( @@ -321,7 +377,14 @@ async function main() { if (jsonContent.contractName == "EternalSoul") { await eternalSoulDeploy() } - + //PHGITAL CONTRACT + if (jsonContent.contractName == "Phygital") { + await phygitalDeploy() + } + //PHYGITALA CONTRACT + if (jsonContent.contractName == "PhygitalA") { + await phygitalADeploy() + } // FLOWSUBSCRIPTION if (jsonContent.contractName == "FlowSubscription") { await flowSubscriptionDeploy() diff --git a/scripts/launch/launch.json b/scripts/launch/launch.json index 2225eb3..6c31bad 100644 --- a/scripts/launch/launch.json +++ b/scripts/launch/launch.json @@ -1,6 +1,12 @@ { - "contractName" : "AccessMaster", + "contractName" : "PhygitalA", "constructorParams":{ - "param1" : "0x83AD8ddAdb013fbA80DE0d802FD4fB1a949AD79f" + "param1": "Alice Clothing", + "param2" : "AC", + "param3" : "0x3A29EA5Ee6AB0326D72b55837dD9fD45b7a867Dd" , + "param4" : "0xc3fE1c3bCCE02d7A115Df2d4737137A15ff830F9", + "param5" : 200, + "param6" : 300, + "param7" : "www.xyz.com" } } \ No newline at end of file diff --git a/typechain-types/Phygital.ts b/typechain-types/Phygital.ts index 8a424e1..ca17a4f 100644 --- a/typechain-types/Phygital.ts +++ b/typechain-types/Phygital.ts @@ -25,6 +25,7 @@ export interface PhygitalInterface extends utils.Interface { "accessMasterAddress()": FunctionFragment; "amountRequired(uint256,uint256)": FunctionFragment; "approve(address,uint256)": FunctionFragment; + "assetStatus(bytes16)": FunctionFragment; "balanceOf(address)": FunctionFragment; "createAsset(string,uint96,bytes16)": FunctionFragment; "delegateAssetCreation(address,string,uint96,bytes16)": FunctionFragment; @@ -32,10 +33,9 @@ export interface PhygitalInterface extends utils.Interface { "getApproved(uint256)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "name()": FunctionFragment; - "nfcCheck(bytes16)": FunctionFragment; - "nfcId(uint256)": FunctionFragment; "nftPrice()": FunctionFragment; "ownerOf(uint256)": FunctionFragment; + "phygitalID(uint256)": FunctionFragment; "rent(uint256,uint256)": FunctionFragment; "rentables(uint256)": FunctionFragment; "royaltyInfo(uint256,uint256)": FunctionFragment; @@ -70,6 +70,10 @@ export interface PhygitalInterface extends utils.Interface { functionFragment: "approve", values: [string, BigNumberish] ): string; + encodeFunctionData( + functionFragment: "assetStatus", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; encodeFunctionData( functionFragment: "createAsset", @@ -92,13 +96,15 @@ export interface PhygitalInterface extends utils.Interface { values: [string, string] ): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "nfcCheck", values: [BytesLike]): string; - encodeFunctionData(functionFragment: "nfcId", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "nftPrice", values?: undefined): string; encodeFunctionData( functionFragment: "ownerOf", values: [BigNumberish] ): string; + encodeFunctionData( + functionFragment: "phygitalID", + values: [BigNumberish] + ): string; encodeFunctionData( functionFragment: "rent", values: [BigNumberish, BigNumberish] @@ -177,6 +183,10 @@ export interface PhygitalInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assetStatus", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult( functionFragment: "createAsset", @@ -199,10 +209,9 @@ export interface PhygitalInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nfcCheck", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nfcId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nftPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "phygitalID", data: BytesLike): Result; decodeFunctionResult(functionFragment: "rent", data: BytesLike): Result; decodeFunctionResult(functionFragment: "rentables", data: BytesLike): Result; decodeFunctionResult( @@ -379,12 +388,14 @@ export interface Phygital extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise<[boolean]>; + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; createAsset( metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -392,7 +403,7 @@ export interface Phygital extends BaseContract { creator: string, metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -414,10 +425,6 @@ export interface Phygital extends BaseContract { name(overrides?: CallOverrides): Promise<[string]>; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise<[boolean]>; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; - nftPrice(overrides?: CallOverrides): Promise<[BigNumber]>; ownerOf( @@ -425,6 +432,11 @@ export interface Phygital extends BaseContract { overrides?: CallOverrides ): Promise<[string]>; + phygitalID( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + rent( _tokenId: BigNumberish, _timeInHours: BigNumberish, @@ -549,12 +561,14 @@ export interface Phygital extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise; + balanceOf(owner: string, overrides?: CallOverrides): Promise; createAsset( metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -562,7 +576,7 @@ export interface Phygital extends BaseContract { creator: string, metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -584,14 +598,12 @@ export interface Phygital extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise; - nftPrice(overrides?: CallOverrides): Promise; ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + phygitalID(arg0: BigNumberish, overrides?: CallOverrides): Promise; + rent( _tokenId: BigNumberish, _timeInHours: BigNumberish, @@ -713,12 +725,14 @@ export interface Phygital extends BaseContract { overrides?: CallOverrides ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise; + balanceOf(owner: string, overrides?: CallOverrides): Promise; createAsset( metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: CallOverrides ): Promise; @@ -726,7 +740,7 @@ export interface Phygital extends BaseContract { creator: string, metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: CallOverrides ): Promise; @@ -748,14 +762,12 @@ export interface Phygital extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise; - nftPrice(overrides?: CallOverrides): Promise; ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + phygitalID(arg0: BigNumberish, overrides?: CallOverrides): Promise; + rent( _tokenId: BigNumberish, _timeInHours: BigNumberish, @@ -970,12 +982,14 @@ export interface Phygital extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise; + balanceOf(owner: string, overrides?: CallOverrides): Promise; createAsset( metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -983,7 +997,7 @@ export interface Phygital extends BaseContract { creator: string, metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1005,10 +1019,6 @@ export interface Phygital extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise; - nftPrice(overrides?: CallOverrides): Promise; ownerOf( @@ -1016,6 +1026,11 @@ export interface Phygital extends BaseContract { overrides?: CallOverrides ): Promise; + phygitalID( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + rent( _tokenId: BigNumberish, _timeInHours: BigNumberish, @@ -1139,6 +1154,11 @@ export interface Phygital extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + assetStatus( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + balanceOf( owner: string, overrides?: CallOverrides @@ -1147,7 +1167,7 @@ export interface Phygital extends BaseContract { createAsset( metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1155,7 +1175,7 @@ export interface Phygital extends BaseContract { creator: string, metadataURI: string, royaltyPercentBasisPoint: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1177,16 +1197,6 @@ export interface Phygital extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck( - arg0: BytesLike, - overrides?: CallOverrides - ): Promise; - - nfcId( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - nftPrice(overrides?: CallOverrides): Promise; ownerOf( @@ -1194,6 +1204,11 @@ export interface Phygital extends BaseContract { overrides?: CallOverrides ): Promise; + phygitalID( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + rent( _tokenId: BigNumberish, _timeInHours: BigNumberish, diff --git a/typechain-types/PhygitalA.ts b/typechain-types/PhygitalA.ts index 1995abe..08b1784 100644 --- a/typechain-types/PhygitalA.ts +++ b/typechain-types/PhygitalA.ts @@ -18,15 +18,6 @@ import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; -export declare namespace PhygitalA { - export type LazyNFTVoucherStruct = { uri: string; signature: BytesLike }; - - export type LazyNFTVoucherStructOutput = [string, string] & { - uri: string; - signature: string; - }; -} - export interface PhygitalAInterface extends utils.Interface { contractName: "PhygitalA"; functions: { @@ -35,6 +26,7 @@ export interface PhygitalAInterface extends utils.Interface { "accessMasterAddress()": FunctionFragment; "amountRequired(uint256,uint256)": FunctionFragment; "approve(address,uint256)": FunctionFragment; + "assetStatus(bytes16)": FunctionFragment; "balanceOf(address)": FunctionFragment; "burn(uint256)": FunctionFragment; "burnNFT(uint256)": FunctionFragment; @@ -43,11 +35,9 @@ export interface PhygitalAInterface extends utils.Interface { "maxSupply()": FunctionFragment; "mint(uint256)": FunctionFragment; "name()": FunctionFragment; - "nfcCheck(bytes16)": FunctionFragment; - "nfcId(uint256)": FunctionFragment; "ownerOf(uint256)": FunctionFragment; - "recover((string,bytes))": FunctionFragment; - "registerAssetId((string,bytes),uint256,bytes16)": FunctionFragment; + "phygitalID(uint256)": FunctionFragment; + "registerAssetId(uint256,bytes16)": FunctionFragment; "rent(uint256,uint256)": FunctionFragment; "rentables(uint256)": FunctionFragment; "royaltyInfo(uint256,uint256)": FunctionFragment; @@ -86,6 +76,10 @@ export interface PhygitalAInterface extends utils.Interface { functionFragment: "approve", values: [string, BigNumberish] ): string; + encodeFunctionData( + functionFragment: "assetStatus", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; encodeFunctionData( @@ -103,19 +97,17 @@ export interface PhygitalAInterface extends utils.Interface { encodeFunctionData(functionFragment: "maxSupply", values?: undefined): string; encodeFunctionData(functionFragment: "mint", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "nfcCheck", values: [BytesLike]): string; - encodeFunctionData(functionFragment: "nfcId", values: [BigNumberish]): string; encodeFunctionData( functionFragment: "ownerOf", values: [BigNumberish] ): string; encodeFunctionData( - functionFragment: "recover", - values: [PhygitalA.LazyNFTVoucherStruct] + functionFragment: "phygitalID", + values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "registerAssetId", - values: [PhygitalA.LazyNFTVoucherStruct, BigNumberish, BytesLike] + values: [BigNumberish, BytesLike] ): string; encodeFunctionData( functionFragment: "rent", @@ -190,6 +182,10 @@ export interface PhygitalAInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assetStatus", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; decodeFunctionResult(functionFragment: "burnNFT", data: BytesLike): Result; @@ -204,10 +200,8 @@ export interface PhygitalAInterface extends utils.Interface { decodeFunctionResult(functionFragment: "maxSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nfcCheck", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "nfcId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "recover", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "phygitalID", data: BytesLike): Result; decodeFunctionResult( functionFragment: "registerAssetId", data: BytesLike @@ -388,6 +382,8 @@ export interface PhygitalA extends BaseContract { overrides?: PayableOverrides & { from?: string | Promise } ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise<[boolean]>; + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; burn( @@ -420,24 +416,19 @@ export interface PhygitalA extends BaseContract { name(overrides?: CallOverrides): Promise<[string]>; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise<[boolean]>; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; - ownerOf( tokenId: BigNumberish, overrides?: CallOverrides ): Promise<[string]>; - recover( - voucher: PhygitalA.LazyNFTVoucherStruct, + phygitalID( + arg0: BigNumberish, overrides?: CallOverrides ): Promise<[string]>; registerAssetId( - voucher: PhygitalA.LazyNFTVoucherStruct, tokenId: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -551,6 +542,8 @@ export interface PhygitalA extends BaseContract { overrides?: PayableOverrides & { from?: string | Promise } ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise; + balanceOf(owner: string, overrides?: CallOverrides): Promise; burn( @@ -583,21 +576,13 @@ export interface PhygitalA extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise; - ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; - recover( - voucher: PhygitalA.LazyNFTVoucherStruct, - overrides?: CallOverrides - ): Promise; + phygitalID(arg0: BigNumberish, overrides?: CallOverrides): Promise; registerAssetId( - voucher: PhygitalA.LazyNFTVoucherStruct, tokenId: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -708,6 +693,8 @@ export interface PhygitalA extends BaseContract { overrides?: CallOverrides ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise; + balanceOf(owner: string, overrides?: CallOverrides): Promise; burn(tokenId: BigNumberish, overrides?: CallOverrides): Promise; @@ -734,21 +721,13 @@ export interface PhygitalA extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise; - ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; - recover( - voucher: PhygitalA.LazyNFTVoucherStruct, - overrides?: CallOverrides - ): Promise; + phygitalID(arg0: BigNumberish, overrides?: CallOverrides): Promise; registerAssetId( - voucher: PhygitalA.LazyNFTVoucherStruct, tokenId: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: CallOverrides ): Promise; @@ -965,6 +944,8 @@ export interface PhygitalA extends BaseContract { overrides?: PayableOverrides & { from?: string | Promise } ): Promise; + assetStatus(arg0: BytesLike, overrides?: CallOverrides): Promise; + balanceOf(owner: string, overrides?: CallOverrides): Promise; burn( @@ -997,24 +978,19 @@ export interface PhygitalA extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck(arg0: BytesLike, overrides?: CallOverrides): Promise; - - nfcId(arg0: BigNumberish, overrides?: CallOverrides): Promise; - ownerOf( tokenId: BigNumberish, overrides?: CallOverrides ): Promise; - recover( - voucher: PhygitalA.LazyNFTVoucherStruct, + phygitalID( + arg0: BigNumberish, overrides?: CallOverrides ): Promise; registerAssetId( - voucher: PhygitalA.LazyNFTVoucherStruct, tokenId: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1127,6 +1103,11 @@ export interface PhygitalA extends BaseContract { overrides?: PayableOverrides & { from?: string | Promise } ): Promise; + assetStatus( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + balanceOf( owner: string, overrides?: CallOverrides @@ -1162,30 +1143,19 @@ export interface PhygitalA extends BaseContract { name(overrides?: CallOverrides): Promise; - nfcCheck( - arg0: BytesLike, - overrides?: CallOverrides - ): Promise; - - nfcId( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - ownerOf( tokenId: BigNumberish, overrides?: CallOverrides ): Promise; - recover( - voucher: PhygitalA.LazyNFTVoucherStruct, + phygitalID( + arg0: BigNumberish, overrides?: CallOverrides ): Promise; registerAssetId( - voucher: PhygitalA.LazyNFTVoucherStruct, tokenId: BigNumberish, - _nfcId: BytesLike, + _phygitalID: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; diff --git a/typechain-types/UserNFT.ts b/typechain-types/UserNFT.ts new file mode 100644 index 0000000..a0fe19c --- /dev/null +++ b/typechain-types/UserNFT.ts @@ -0,0 +1,551 @@ +/* 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 UserNFTInterface extends utils.Interface { + contractName: "UserNFT"; + functions: { + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "getApproved(uint256)": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "name()": FunctionFragment; + "ownerOf(uint256)": FunctionFragment; + "safeMint()": FunctionFragment; + "safeTransferFrom(address,address,uint256)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "symbol()": FunctionFragment; + "tokenURI(uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "safeMint", values?: undefined): string; + encodeFunctionData( + functionFragment: "safeTransferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "safeMint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "ApprovalForAll(address,address,bool)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } +>; + +export type ApprovalEventFilter = TypedEventFilter; + +export type ApprovalForAllEvent = TypedEvent< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } +>; + +export type ApprovalForAllEventFilter = TypedEventFilter; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } +>; + +export type TransferEventFilter = TypedEventFilter; + +export interface UserNFT extends BaseContract { + contractName: "UserNFT"; + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: UserNFTInterface; + + 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: { + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + name(overrides?: CallOverrides): Promise<[string]>; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + safeMint( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + safeMint( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + approve( + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + safeMint(overrides?: CallOverrides): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): ApprovalEventFilter; + Approval( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): ApprovalEventFilter; + + "ApprovalForAll(address,address,bool)"( + owner?: string | null, + operator?: string | null, + approved?: null + ): ApprovalForAllEventFilter; + ApprovalForAll( + owner?: string | null, + operator?: string | null, + approved?: null + ): ApprovalForAllEventFilter; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TransferEventFilter; + Transfer( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TransferEventFilter; + }; + + estimateGas: { + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeMint( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeMint( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/typechain-types/factories/PhygitalA__factory.ts b/typechain-types/factories/PhygitalA__factory.ts index dc4cf0a..33d6481 100644 --- a/typechain-types/factories/PhygitalA__factory.ts +++ b/typechain-types/factories/PhygitalA__factory.ts @@ -35,16 +35,6 @@ const _abi = [ name: "accessControlAddress", type: "address", }, - { - internalType: "string", - name: "domain", - type: "string", - }, - { - internalType: "string", - name: "_version", - type: "string", - }, { internalType: "uint256", name: "_maxSupply", @@ -447,6 +437,25 @@ const _abi = [ stateMutability: "payable", type: "function", }, + { + inputs: [ + { + internalType: "bytes16", + name: "", + type: "bytes16", + }, + ], + name: "assetStatus", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -585,44 +594,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "bytes16", - name: "", - type: "bytes16", - }, - ], - name: "nfcCheck", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "nfcId", - outputs: [ - { - internalType: "bytes16", - name: "", - type: "bytes16", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -645,29 +616,17 @@ const _abi = [ { inputs: [ { - components: [ - { - internalType: "string", - name: "uri", - type: "string", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct PhygitalA.LazyNFTVoucher", - name: "voucher", - type: "tuple", + internalType: "uint256", + name: "", + type: "uint256", }, ], - name: "recover", + name: "phygitalID", outputs: [ { - internalType: "address", + internalType: "bytes16", name: "", - type: "address", + type: "bytes16", }, ], stateMutability: "view", @@ -675,23 +634,6 @@ const _abi = [ }, { inputs: [ - { - components: [ - { - internalType: "string", - name: "uri", - type: "string", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct PhygitalA.LazyNFTVoucher", - name: "voucher", - type: "tuple", - }, { internalType: "uint256", name: "tokenId", @@ -699,7 +641,7 @@ const _abi = [ }, { internalType: "bytes16", - name: "_nfcId", + name: "_phygitalID", type: "bytes16", }, ], @@ -1058,7 +1000,7 @@ const _abi = [ ]; const _bytecode = - "0x610160604052600a805460ff191660011790553480156200001f57600080fd5b50604051620030bb380380620030bb833981016040819052620000429162000364565b84848a8a60046200005483826200050d565b5060056200006382826200050d565b5050600160025550815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c052610120525050601480546001600160a01b038a81166001600160a01b031992831617909255600c8054928c16929091169190911790555050610140839052600b6200014082826200050d565b506200014d33836200017d565b5050600d80546001600160a01b0319166001600160a01b03959095169490941790935550620005d9945050505050565b6127106001600160601b0382161115620001f15760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002495760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620001e8565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002aa57600080fd5b81516001600160401b0380821115620002c757620002c762000282565b604051601f8301601f19908116603f01168101908282118183101715620002f257620002f262000282565b816040528381526020925086838588010111156200030f57600080fd5b600091505b8382101562000333578582018301518183018401529082019062000314565b600093810190920192909252949350505050565b80516001600160a01b03811681146200035f57600080fd5b919050565b60008060008060008060008060006101208a8c0312156200038457600080fd5b89516001600160401b03808211156200039c57600080fd5b620003aa8d838e0162000298565b9a5060208c0151915080821115620003c157600080fd5b620003cf8d838e0162000298565b9950620003df60408d0162000347565b9850620003ef60608d0162000347565b975060808c01519150808211156200040657600080fd5b620004148d838e0162000298565b965060a08c01519150808211156200042b57600080fd5b620004398d838e0162000298565b955060c08c0151945060e08c015193506101008c01519150808211156200045f57600080fd5b506200046e8c828d0162000298565b9150509295985092959850929598565b600181811c908216806200049357607f821691505b602082108103620004b457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200050857600081815260208120601f850160051c81016020861015620004e35750805b601f850160051c820191505b818110156200050457828155600101620004ef565b5050505b505050565b81516001600160401b0381111562000529576200052962000282565b62000541816200053a84546200047e565b84620004ba565b602080601f831160018114620005795760008415620005605750858301515b600019600386901b1c1916600185901b17855562000504565b600085815260208120601f198616915b82811015620005aa5788860151825594840194600190910190840162000589565b5085821015620005c95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610100516101205161014051612a806200063b600039600081816106d7015261119b01526000611ee301526000611f3201526000611f0d01526000611e6601526000611e9001526000611eba0152612a806000f3fe6080604052600436106102045760003560e01c8063783a112b11610118578063a5cc0328116100a0578063c87b56dd1161006f578063c87b56dd146106a5578063d5abeb01146106c5578063e030565e146106f9578063e3faad9414610719578063e985e9c51461072e57600080fd5b8063a5cc032814610632578063b88d4fde14610652578063ba91caae14610665578063c2f1f14a1461068557600080fd5b80639874cd97116100e75780639874cd9714610523578063a0712d68146105b5578063a22cb465146105dd578063a4157296146105fd578063a4b110521461061257600080fd5b8063783a112b1461048e5780638fc88c48146104a157806391295516146104de57806395d89b411461050e57600080fd5b80632a55205a1161019b57806354fd4d501161016a57806354fd4d50146103e257806360f453eb1461040e5780636352211e1461042e578063655bc8db1461044e57806370a082311461046e57600080fd5b80632a55205a1461032757806333c21d2c1461036657806342842e0e146103af57806342966c68146103c257600080fd5b80630aa7c854116101d75780630aa7c854146102ad57806318160ddd146102cd57806323b872dd146102f45780632890e0d71461030757600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b5061022961022436600461230e565b61074e565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b5061025361079f565b604051610235919061237b565b34801561026c57600080fd5b5061028061027b36600461238e565b610831565b6040516001600160a01b039091168152602001610235565b6102ab6102a63660046123bc565b61086c565b005b3480156102b957600080fd5b50600d54610280906001600160a01b031681565b3480156102d957600080fd5b5060035460025403600019015b604051908152602001610235565b6102ab6103023660046123e8565b61087c565b34801561031357600080fd5b506102ab61032236600461238e565b6109eb565b34801561033357600080fd5b50610347610342366004612429565b610ac9565b604080516001600160a01b039093168352602083019190915201610235565b34801561037257600080fd5b5061039661038136600461238e565b60126020526000908152604090205460801b81565b6040516001600160801b03199091168152602001610235565b6102ab6103bd3660046123e8565b610b77565b3480156103ce57600080fd5b506102ab6103dd36600461238e565b610b97565b3480156103ee57600080fd5b50600a546103fc9060ff1681565b60405160ff9091168152602001610235565b34801561041a57600080fd5b50610280610429366004612463565b610ba5565b34801561043a57600080fd5b5061028061044936600461238e565b610c75565b34801561045a57600080fd5b506102ab6104693660046124a5565b610c80565b34801561047a57600080fd5b506102e66104893660046124cc565b610d31565b6102ab61049c366004612429565b610d76565b3480156104ad57600080fd5b506102e66104bc36600461238e565b600090815260106020526040902054600160a81b90046001600160401b031690565b3480156104ea57600080fd5b506102296104f9366004612501565b60136020526000908152604090205460ff1681565b34801561051a57600080fd5b506102536110a4565b34801561052f57600080fd5b5061057d61053e36600461238e565b6010602052600090815260409020805460019091015460ff82169161010081046001600160a01b031691600160a81b9091046001600160401b03169084565b6040805194151585526001600160a01b0390931660208501526001600160401b03909116918301919091526060820152608001610235565b6105c86105c336600461238e565b6110b3565b60408051928352602083019190915201610235565b3480156105e957600080fd5b506102ab6105f836600461251c565b611319565b34801561060957600080fd5b50610253611385565b34801561061e57600080fd5b50600c54610280906001600160a01b031681565b34801561063e57600080fd5b506102ab61064d366004612555565b611413565b6102ab6106603660046125c1565b6115a4565b34801561067157600080fd5b506102e6610680366004612429565b6115e5565b34801561069157600080fd5b506102806106a036600461238e565b611609565b3480156106b157600080fd5b506102536106c036600461238e565b61165d565b3480156106d157600080fd5b506102e67f000000000000000000000000000000000000000000000000000000000000000081565b34801561070557600080fd5b506102ab6107143660046126a0565b6116d7565b34801561072557600080fd5b50610253611837565b34801561073a57600080fd5b506102296107493660046126ee565b611844565b6000636ad56fd360e11b6001600160e01b031983160161077057506001919050565b6314bdb52960e21b6001600160e01b031983160161079057506001919050565b61079982611872565b92915050565b6060600480546107ae9061271c565b80601f01602080910402602001604051908101604052809291908181526020018280546107da9061271c565b80156108275780601f106107fc57610100808354040283529160200191610827565b820191906000526020600020905b81548152906001019060200180831161080a57829003601f168201915b5050505050905090565b600061083c826118c0565b610850576108506333d1c03960e21b61190c565b506000908152600860205260409020546001600160a01b031690565b61087882826001611916565b5050565b6000610887826119b9565b6001600160a01b0394851694909150811684146108ad576108ad62a1148160e81b61190c565b600082815260086020526040902080546108d98187335b6001600160a01b039081169116811491141790565b6108fb576108e78633611844565b6108fb576108fb632ce44b5f60e11b61190c565b801561090657600082555b6001600160a01b038681166000908152600760205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260066020526040812091909155600160e11b84169003610998576001840160008181526006602052604081205490036109965760025481146109965760008181526006602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4806000036109e2576109e2633a954ecd60e21b61190c565b50505050505050565b60006109f682610c75565b905033610a0283610c75565b6001600160a01b03161480610a1c5750610a1c8133611844565b610a6d5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c413a204e6f74204f776e6572204f7220417070726f76656460448201526064015b60405180910390fd5b610a78826001611a5a565b600082815260016020526040812055817f2a5fd0bc4df8bf54012cb36761df3287ea7e3380367b791f6f6ad0506b500a0a336040516001600160a01b03909116815260200160405180910390a25050565b60008281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610b3e5750604080518082019091526000546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610b5d906001600160601b031687612766565b610b67919061277d565b91519350909150505b9250929050565b610b92838383604051806020016040528060008152506115a4565b505050565b610ba2816001611a5a565b50565b600080610c1e7f6a50cd13df4d49c839384eb15944b5713af5a276ddb78e79557d1798dbca09fa610bd6858061279f565b604051610be49291906127e5565b604051908190038120610c039291602001918252602082015260400190565b60405160208183030381529060405280519060200120611b9c565b90506000610c6d82610c33602087018761279f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bea92505050565b949350505050565b6000610799826119b9565b6000610c8b84610c75565b90506001600160a01b038116331480610ca95750610ca98133611844565b610cc55760405162461bcd60e51b8152600401610a64906127f5565b600084815260106020908152604091829020805460ff19168615159081178255600190910185905582518781529182015290810183905233907fa9dcc06084f66afbdc1841a28e84400fcbf607131220fdcf404c8502f3c032039060600160405180910390a250505050565b60006001600160a01b038216610d5157610d516323d3ad8160e21b61190c565b506001600160a01b03166000908152600760205260409020546001600160401b031690565b610d7f826118c0565b610dd65760405162461bcd60e51b815260206004820152602260248201527f5369676e61747572655365726965733a20496e76616c69646520546f6b656e20604482015261125960f21b6064820152608401610a64565b60008281526010602052604090205460ff16610e3e5760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a204e6f7420617661696c61626c6520666f722072656e6044820152601d60fa1b6064820152608401610a64565b6000610e4983611609565b6001600160a01b031614610ea95760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a204e465420416c7265616479205375627363726962656044820152601960fa1b6064820152608401610a64565b60008111610f0b5760405162461bcd60e51b815260206004820152602960248201527f506879676974616c413a2054696d652063616e2774206265206c65737320746860448201526830b71018903437bab960b91b6064820152608401610a64565b6110e0811115610f715760405162461bcd60e51b815260206004820152602b60248201527f506879676974616c413a2054696d652063616e2774206265206d6f726520746860448201526a616e2036206d6f6e74687360a81b6064820152608401610a64565b6000610f7d83836115e5565b905080341015610fcf5760405162461bcd60e51b815260206004820152601d60248201527f506879676974616c413a20496e73756666696369656e742046756e64730000006044820152606401610a64565b610fe333610fdc85610c75565b8534611c0e565b60008381526010602052604090208054610100600160a81b031916610100330217815561101283610e10612766565b61101c904261283a565b81546001600160401b0391909116600160a81b0267ffffffffffffffff60a81b1990911617815561104a3390565b8154604051600160a81b9091046001600160401b031681526001600160a01b03919091169085907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe9060200160405180910390a350505050565b6060600580546107ae9061271c565b60145460009081906001600160a01b031663efd46065336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561110e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611132919061284d565b6111885760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a2055736572206973206e6f7420617574686f72697a656044820152601960fa1b6064820152608401610a64565b60006111976002546000190190565b90507f0000000000000000000000000000000000000000000000000000000000000000846111c86002546000190190565b6111d2919061283a565b111561122f5760405162461bcd60e51b815260206004820152602660248201527f506879676974616c413a20457863656564696e67206d617820746f6b656e20736044820152657570706c792160d01b6064820152608401610a64565b6112393385611d0a565b600c54611250906001600160a01b03166001611319565b60145460408051633955348d60e21b815290516000926001600160a01b03169163e554d2349160048083019260209291908290030181865afa15801561129a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112be919061286a565b90506112cc33828734611c0e565b337f328ff68d0e66694e405c9f8fc906a346b345aa1f87ec216eaa82f2c654d0d34a6112fb6002546000190190565b60408051918252602082018990520160405180910390a25093915050565b3360008181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600f80546113929061271c565b80601f01602080910402602001604051908101604052809291908181526020018280546113be9061271c565b801561140b5780601f106113e05761010080835404028352916020019161140b565b820191906000526020600020905b8154815290600101906020018083116113ee57829003601f168201915b505050505081565b6001600160801b0319811660009081526013602052604090205460ff16156114875760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a204974277320616c72656164792072656769737465726044820152601960fa1b6064820152608401610a64565b6014546001600160a01b031663efd460656114a185610ba5565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156114e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611509919061284d565b6115555760405162461bcd60e51b815260206004820152601d60248201527f506879676974616c413a20496e76616c6964205369676e6174757265210000006044820152606401610a64565b61155f838061279f565b6000848152601160205260409020916115799190836128d5565b5060009182526012602052604090912080546001600160801b03191660809290921c91909117905550565b6115af84848461087c565b6001600160a01b0383163b156115df576115cb84848484611d24565b6115df576115df6368d2bf6b60e11b61190c565b50505050565b600082815260106020526040812060010154611602908390612766565b9392505050565b60008181526010602052604081205442600160a81b9091046001600160401b031610611650575060009081526010602052604090205461010090046001600160a01b031690565b506000919050565b919050565b6060611668826118c0565b61167c5761167c630a14c4b560e41b61190c565b6000611686611e06565b905080516000036116a65760405180602001604052806000815250611602565b806116b084611e15565b6040516020016116c1929190612994565b6040516020818303038152906040529392505050565b60006116e284610c75565b90506001600160a01b03811633148061170057506117008133611844565b61171c5760405162461bcd60e51b8152600401610a64906127f5565b600061172785611609565b6001600160a01b03161461178b5760405162461bcd60e51b815260206004820152602560248201527f506879676974616c413a204974656d20697320616c72656164792073756273636044820152641c9a58995960da1b6064820152608401610a64565b60008481526010602052604090208054610100600160a81b0319166101006001600160a01b038616021781556117ca6001600160401b0384164261283a565b815467ffffffffffffffff60a81b1916600160a81b6001600160401b039283160217825560405190841681526001600160a01b0385169086907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe9060200160405180910390a35050505050565b600e80546113929061271c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b0319831614806118a357506380ac58cd60e01b6001600160e01b03198316145b806107995750506001600160e01b031916635b5e139f60e01b1490565b600081600111611658576002548210156116585760005b50600082815260066020526040812054908190036118ff576118f8836129c3565b92506118d7565b600160e01b161592915050565b8060005260046000fd5b600061192183610c75565b90508180156119395750336001600160a01b03821614155b1561195c576119488133611844565b61195c5761195c6367d9dca160e11b61190c565b60008381526008602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b600081600111611a4a575060008181526006602052604081205490819003611a375760025482106119f4576119f4636f96cda160e11b61190c565b5b506000190160008181526006602052604090205480156119f557600160e01b8116600003611a2257919050565b611a32636f96cda160e11b61190c565b6119f5565b600160e01b8116600003611a4a57919050565b611658636f96cda160e11b61190c565b6000611a65836119b9565b905080600080611a8386600090815260086020526040902080549091565b915091508415611aba57611a988184336108c4565b611aba57611aa68333611844565b611aba57611aba632ce44b5f60e11b61190c565b8015611ac557600082555b6001600160a01b038316600081815260076020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b17600087815260066020526040812091909155600160e11b85169003611b5357600186016000818152600660205260408120549003611b51576002548114611b515760008181526006602052604090208590555b505b60405186906000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505060038054600101905550505050565b6000610799611ba9611e59565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611bf98585611f80565b91509150611c0681611fc2565b509392505050565b6000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114611c5b576040519150601f19603f3d011682016040523d82523d6000602084013e611c60565b606091505b5050905080611cb15760405162461bcd60e51b815260206004820152601a60248201527f506879676974616c413a205472616e73666572206661696c65640000000000006044820152606401610a64565b604080516001600160a01b03808816825286166020820152908101849052606081018390527faeadc2c673108f922a1042ef404b73ae1af992c9ae54249a4a7d13ef21ef2c189060800160405180910390a15050505050565b61087882826040518060200160405280600081525061210c565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611d599033908990889088906004016129da565b6020604051808303816000875af1925050508015611d94575060408051601f3d908101601f19168201909252611d9191810190612a17565b60015b611de9573d808015611dc2576040519150601f19603f3d011682016040523d82523d6000602084013e611dc7565b606091505b508051600003611de157611de16368d2bf6b60e11b61190c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b6060600b80546107ae9061271c565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480611e2f5750819003601f19909101908152919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611eb257507f000000000000000000000000000000000000000000000000000000000000000046145b15611edc57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000808251604103611fb65760208301516040840151606085015160001a611faa87828585612175565b94509450505050610b70565b50600090506002610b70565b6000816004811115611fd657611fd6612a34565b03611fde5750565b6001816004811115611ff257611ff2612a34565b0361203f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a64565b600281600481111561205357612053612a34565b036120a05760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a64565b60038160048111156120b4576120b4612a34565b03610ba25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a64565b6121168383612239565b6001600160a01b0383163b15610b92576002548281035b6121406000868380600101945086611d24565b612154576121546368d2bf6b60e11b61190c565b81811061212d57816002541461216e5761216e600061190c565b5050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156121ac5750600090506003612230565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612200573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661222957600060019250925050612230565b9150600090505b94509492505050565b60025460008290036122555761225563b562e8dd60e01b61190c565b60008181526006602090815260408083206001600160a01b0387164260a01b6001881460e11b178117909155808452600790925282208054680100000000000000018602019055908190036122b3576122b3622e076360e81b61190c565b818301825b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a48181600101915081036122b8575060025550505050565b6001600160e01b031981168114610ba257600080fd5b60006020828403121561232057600080fd5b8135611602816122f8565b60005b8381101561234657818101518382015260200161232e565b50506000910152565b6000815180845261236781602086016020860161232b565b601f01601f19169290920160200192915050565b602081526000611602602083018461234f565b6000602082840312156123a057600080fd5b5035919050565b6001600160a01b0381168114610ba257600080fd5b600080604083850312156123cf57600080fd5b82356123da816123a7565b946020939093013593505050565b6000806000606084860312156123fd57600080fd5b8335612408816123a7565b92506020840135612418816123a7565b929592945050506040919091013590565b6000806040838503121561243c57600080fd5b50508035926020909101359150565b60006040828403121561245d57600080fd5b50919050565b60006020828403121561247557600080fd5b81356001600160401b0381111561248b57600080fd5b610c6d8482850161244b565b8015158114610ba257600080fd5b6000806000606084860312156124ba57600080fd5b83359250602084013561241881612497565b6000602082840312156124de57600080fd5b8135611602816123a7565b80356001600160801b03198116811461165857600080fd5b60006020828403121561251357600080fd5b611602826124e9565b6000806040838503121561252f57600080fd5b823561253a816123a7565b9150602083013561254a81612497565b809150509250929050565b60008060006060848603121561256a57600080fd5b83356001600160401b0381111561258057600080fd5b61258c8682870161244b565b935050602084013591506125a2604085016124e9565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156125d757600080fd5b84356125e2816123a7565b935060208501356125f2816123a7565b92506040850135915060608501356001600160401b038082111561261557600080fd5b818701915087601f83011261262957600080fd5b81358181111561263b5761263b6125ab565b604051601f8201601f19908116603f01168101908382118183101715612663576126636125ab565b816040528281528a602084870101111561267c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806000606084860312156126b557600080fd5b8335925060208401356126c7816123a7565b915060408401356001600160401b03811681146126e357600080fd5b809150509250925092565b6000806040838503121561270157600080fd5b823561270c816123a7565b9150602083013561254a816123a7565b600181811c9082168061273057607f821691505b60208210810361245d57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079957610799612750565b60008261279a57634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e198436030181126127b657600080fd5b8301803591506001600160401b038211156127d057600080fd5b602001915036819003821315610b7057600080fd5b8183823760009101908152919050565b60208082526025908201527f506879676974616c413a2043616c6c6572206973206e6f7420746f6b656e206f60408201526403bb732b9160dd1b606082015260800190565b8082018082111561079957610799612750565b60006020828403121561285f57600080fd5b815161160281612497565b60006020828403121561287c57600080fd5b8151611602816123a7565b601f821115610b9257600081815260208120601f850160051c810160208610156128ae5750805b601f850160051c820191505b818110156128cd578281556001016128ba565b505050505050565b6001600160401b038311156128ec576128ec6125ab565b612900836128fa835461271c565b83612887565b6000601f841160018114612934576000851561291c5750838201355b600019600387901b1c1916600186901b17835561216e565b600083815260209020601f19861690835b828110156129655786850135825560209485019460019092019101612945565b50868210156129825760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600083516129a681846020880161232b565b8351908301906129ba81836020880161232b565b01949350505050565b6000816129d2576129d2612750565b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612a0d9083018461234f565b9695505050505050565b600060208284031215612a2957600080fd5b8151611602816122f8565b634e487b7160e01b600052602160045260246000fdfea264697066735822122045f515bcf441a687847f46afc73ee959e8d022f98d842d3effaed9653f8396cc64736f6c63430008110033"; + "0x60a0604052600a805460ff191660011790553480156200001e57600080fd5b50604051620028c5380380620028c58339810160408190526200004191620002cd565b8686600462000051838262000426565b50600562000060828262000426565b5060016002555050601480546001600160a01b038087166001600160a01b031992831617909255600c8054928816929091169190911790556080839052600b620000ab828262000426565b50620000b83383620000e6565b5050600d80546001600160a01b0319166001600160a01b03939093169290921790915550620004f292505050565b6127106001600160601b03821611156200015a5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001b25760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000151565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200021357600080fd5b81516001600160401b0380821115620002305762000230620001eb565b604051601f8301601f19908116603f011681019082821181831017156200025b576200025b620001eb565b816040528381526020925086838588010111156200027857600080fd5b600091505b838210156200029c57858201830151818301840152908201906200027d565b600093810190920192909252949350505050565b80516001600160a01b0381168114620002c857600080fd5b919050565b600080600080600080600060e0888a031215620002e957600080fd5b87516001600160401b03808211156200030157600080fd5b6200030f8b838c0162000201565b985060208a01519150808211156200032657600080fd5b620003348b838c0162000201565b97506200034460408b01620002b0565b96506200035460608b01620002b0565b955060808a0151945060a08a0151935060c08a01519150808211156200037957600080fd5b50620003888a828b0162000201565b91505092959891949750929550565b600181811c90821680620003ac57607f821691505b602082108103620003cd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200042157600081815260208120601f850160051c81016020861015620003fc5750805b601f850160051c820191505b818110156200041d5782815560010162000408565b5050505b505050565b81516001600160401b03811115620004425762000442620001eb565b6200045a8162000453845462000397565b84620003d3565b602080601f831160018114620004925760008415620004795750858301515b600019600386901b1c1916600185901b1785556200041d565b600085815260208120601f198616915b82811015620004c357888601518255948401946001909101908401620004a2565b5085821015620004e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516123b062000515600039600081816106af015261122901526123b06000f3fe6080604052600436106101f95760003560e01c8063783a112b1161010d578063a4b11052116100a0578063c87b56dd1161006f578063c87b56dd1461067d578063d5abeb011461069d578063e030565e146106d1578063e3faad94146106f1578063e985e9c51461070657600080fd5b8063a4b110521461060a578063b88d4fde1461062a578063ba91caae1461063d578063c2f1f14a1461065d57600080fd5b80639874cd97116100dc5780639874cd9714610519578063a0712d68146105ad578063a22cb465146105d5578063a4157296146105f557600080fd5b8063783a112b146104835780637e57f7de146104965780638fc88c48146104c657806395d89b411461050457600080fd5b80632890e0d7116101905780634f7170dd1161015f5780634f7170dd146103ae57806354fd4d50146103f75780636352211e14610423578063655bc8db1461044357806370a082311461046357600080fd5b80632890e0d71461031c5780632a55205a1461033c57806342842e0e1461037b57806342966c681461038e57600080fd5b8063095ea7b3116101cc578063095ea7b3146102af5780630aa7c854146102c257806318160ddd146102e257806323b872dd1461030957600080fd5b806301ffc9a7146101fe5780630446827c1461023357806306fdde0314610255578063081812fc14610277575b600080fd5b34801561020a57600080fd5b5061021e610219366004611e25565b610726565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061025361024e366004611e5a565b610777565b005b34801561026157600080fd5b5061026a610901565b60405161022a9190611ed6565b34801561028357600080fd5b50610297610292366004611ee9565b610993565b6040516001600160a01b03909116815260200161022a565b6102536102bd366004611f17565b6109ce565b3480156102ce57600080fd5b50600d54610297906001600160a01b031681565b3480156102ee57600080fd5b5060035460025403600019015b60405190815260200161022a565b610253610317366004611f43565b6109de565b34801561032857600080fd5b50610253610337366004611ee9565b610b4d565b34801561034857600080fd5b5061035c610357366004611f84565b610c26565b604080516001600160a01b03909316835260208301919091520161022a565b610253610389366004611f43565b610cd2565b34801561039a57600080fd5b506102536103a9366004611ee9565b610cf2565b3480156103ba57600080fd5b506103de6103c9366004611ee9565b60126020526000908152604090205460801b81565b6040516001600160801b0319909116815260200161022a565b34801561040357600080fd5b50600a546104119060ff1681565b60405160ff909116815260200161022a565b34801561042f57600080fd5b5061029761043e366004611ee9565b610d00565b34801561044f57600080fd5b5061025361045e366004611fb4565b610d0b565b34801561046f57600080fd5b506102fb61047e366004611fdb565b610dbc565b610253610491366004611f84565b610e02565b3480156104a257600080fd5b5061021e6104b1366004611ff8565b60136020526000908152604090205460ff1681565b3480156104d257600080fd5b506102fb6104e1366004611ee9565b600090815260106020526040902054600160a81b900467ffffffffffffffff1690565b34801561051057600080fd5b5061026a611132565b34801561052557600080fd5b50610574610534366004611ee9565b6010602052600090815260409020805460019091015460ff82169161010081046001600160a01b031691600160a81b90910467ffffffffffffffff169084565b6040805194151585526001600160a01b03909316602085015267ffffffffffffffff90911691830191909152606082015260800161022a565b6105c06105bb366004611ee9565b611141565b6040805192835260208301919091520161022a565b3480156105e157600080fd5b506102536105f0366004612013565b6113a7565b34801561060157600080fd5b5061026a611413565b34801561061657600080fd5b50600c54610297906001600160a01b031681565b610253610638366004612062565b6114a1565b34801561064957600080fd5b506102fb610658366004611f84565b6114e2565b34801561066957600080fd5b50610297610678366004611ee9565b611506565b34801561068957600080fd5b5061026a610698366004611ee9565b61155b565b3480156106a957600080fd5b506102fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106dd57600080fd5b506102536106ec366004612142565b6115d5565b3480156106fd57600080fd5b5061026a611737565b34801561071257600080fd5b5061021e610721366004612191565b611744565b6000636ad56fd360e11b6001600160e01b031983160161074857506001919050565b6314bdb52960e21b6001600160e01b031983160161076857506001919050565b61077182611772565b92915050565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156107cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f191906121bf565b61084d5760405162461bcd60e51b815260206004820152602260248201527f506879676974616c413a2055736572206973206e6f7420617574686f72697a65604482015261032160f51b60648201526084015b60405180910390fd5b6001600160801b0319811660009081526013602052604090205460ff16156108c15760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a204974277320616c72656164792072656769737465726044820152601960fa1b6064820152608401610844565b60009182526012602090815260408084208054608085901c6001600160801b0319918216179091559092168352601390529020805460ff19166001179055565b606060048054610910906121dc565b80601f016020809104026020016040519081016040528092919081815260200182805461093c906121dc565b80156109895780601f1061095e57610100808354040283529160200191610989565b820191906000526020600020905b81548152906001019060200180831161096c57829003601f168201915b5050505050905090565b600061099e826117c0565b6109b2576109b26333d1c03960e21b61180c565b506000908152600860205260409020546001600160a01b031690565b6109da82826001611816565b5050565b60006109e9826118b9565b6001600160a01b039485169490915081168414610a0f57610a0f62a1148160e81b61180c565b60008281526008602052604090208054610a3b8187335b6001600160a01b039081169116811491141790565b610a5d57610a498633611744565b610a5d57610a5d632ce44b5f60e11b61180c565b8015610a6857600082555b6001600160a01b038681166000908152600760205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260066020526040812091909155600160e11b84169003610afa57600184016000818152600660205260408120549003610af8576002548114610af85760008181526006602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a480600003610b4457610b44633a954ecd60e21b61180c565b50505050505050565b6000610b5882610d00565b905033610b6483610d00565b6001600160a01b03161480610b7e5750610b7e8133611744565b610bca5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c413a204e6f74204f776e6572204f7220417070726f7665646044820152606401610844565b610bd582600161195a565b600082815260016020526040812055817f2a5fd0bc4df8bf54012cb36761df3287ea7e3380367b791f6f6ad0506b500a0a336040516001600160a01b03909116815260200160405180910390a25050565b60008281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610c9b5750604080518082019091526000546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610cba906001600160601b03168761222c565b610cc49190612243565b915196919550909350505050565b610ced838383604051806020016040528060008152506114a1565b505050565b610cfd81600161195a565b50565b6000610771826118b9565b6000610d1684610d00565b90506001600160a01b038116331480610d345750610d348133611744565b610d505760405162461bcd60e51b815260040161084490612265565b600084815260106020908152604091829020805460ff19168615159081178255600190910185905582518781529182015290810183905233907fa9dcc06084f66afbdc1841a28e84400fcbf607131220fdcf404c8502f3c032039060600160405180910390a250505050565b60006001600160a01b038216610ddc57610ddc6323d3ad8160e21b61180c565b506001600160a01b031660009081526007602052604090205467ffffffffffffffff1690565b610e0b826117c0565b610e625760405162461bcd60e51b815260206004820152602260248201527f5369676e61747572655365726965733a20496e76616c69646520546f6b656e20604482015261125960f21b6064820152608401610844565b60008281526010602052604090205460ff16610eca5760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a204e6f7420617661696c61626c6520666f722072656e6044820152601d60fa1b6064820152608401610844565b6000610ed583611506565b6001600160a01b031614610f355760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a204e465420416c7265616479205375627363726962656044820152601960fa1b6064820152608401610844565b60008111610f975760405162461bcd60e51b815260206004820152602960248201527f506879676974616c413a2054696d652063616e2774206265206c65737320746860448201526830b71018903437bab960b91b6064820152608401610844565b6110e0811115610ffd5760405162461bcd60e51b815260206004820152602b60248201527f506879676974616c413a2054696d652063616e2774206265206d6f726520746860448201526a616e2036206d6f6e74687360a81b6064820152608401610844565b600061100983836114e2565b90508034101561105b5760405162461bcd60e51b815260206004820152601d60248201527f506879676974616c413a20496e73756666696369656e742046756e64730000006044820152606401610844565b61106f3361106885610d00565b8534611a9c565b60008381526010602052604090208054610100600160a81b031916610100330217815561109e83610e1061222c565b6110a890426122aa565b815467ffffffffffffffff91909116600160a81b0267ffffffffffffffff60a81b199091161781556110d73390565b8154604051600160a81b90910467ffffffffffffffff1681526001600160a01b03919091169085907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe9060200160405180910390a350505050565b606060058054610910906121dc565b60145460009081906001600160a01b031663efd46065336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561119c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c091906121bf565b6112165760405162461bcd60e51b815260206004820152602160248201527f506879676974616c413a2055736572206973206e6f7420617574686f72697a656044820152601960fa1b6064820152608401610844565b60006112256002546000190190565b90507f0000000000000000000000000000000000000000000000000000000000000000846112566002546000190190565b61126091906122aa565b11156112bd5760405162461bcd60e51b815260206004820152602660248201527f506879676974616c413a20457863656564696e67206d617820746f6b656e20736044820152657570706c792160d01b6064820152608401610844565b6112c73385611b98565b600c546112de906001600160a01b031660016113a7565b60145460408051633955348d60e21b815290516000926001600160a01b03169163e554d2349160048083019260209291908290030181865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c91906122bd565b905061135a33828734611a9c565b337f328ff68d0e66694e405c9f8fc906a346b345aa1f87ec216eaa82f2c654d0d34a6113896002546000190190565b60408051918252602082018990520160405180910390a25093915050565b3360008181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600f8054611420906121dc565b80601f016020809104026020016040519081016040528092919081815260200182805461144c906121dc565b80156114995780601f1061146e57610100808354040283529160200191611499565b820191906000526020600020905b81548152906001019060200180831161147c57829003601f168201915b505050505081565b6114ac8484846109de565b6001600160a01b0383163b156114dc576114c884848484611bb2565b6114dc576114dc6368d2bf6b60e11b61180c565b50505050565b6000828152601060205260408120600101546114ff90839061222c565b9392505050565b60008181526010602052604081205442600160a81b90910467ffffffffffffffff161061154e575060009081526010602052604090205461010090046001600160a01b031690565b506000919050565b919050565b6060611566826117c0565b61157a5761157a630a14c4b560e41b61180c565b6000611584611c94565b905080516000036115a457604051806020016040528060008152506114ff565b806115ae84611ca3565b6040516020016115bf9291906122da565b6040516020818303038152906040529392505050565b60006115e084610d00565b90506001600160a01b0381163314806115fe57506115fe8133611744565b61161a5760405162461bcd60e51b815260040161084490612265565b600061162585611506565b6001600160a01b0316146116895760405162461bcd60e51b815260206004820152602560248201527f506879676974616c413a204974656d20697320616c72656164792073756273636044820152641c9a58995960da1b6064820152608401610844565b60008481526010602052604090208054610100600160a81b0319166101006001600160a01b038616021781556116c967ffffffffffffffff8416426122aa565b815467ffffffffffffffff60a81b1916600160a81b67ffffffffffffffff9283160217825560405190841681526001600160a01b0385169086907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe9060200160405180910390a35050505050565b600e8054611420906121dc565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b0319831614806117a357506380ac58cd60e01b6001600160e01b03198316145b806107715750506001600160e01b031916635b5e139f60e01b1490565b600081600111611556576002548210156115565760005b50600082815260066020526040812054908190036117ff576117f883612309565b92506117d7565b600160e01b161592915050565b8060005260046000fd5b600061182183610d00565b90508180156118395750336001600160a01b03821614155b1561185c576118488133611744565b61185c5761185c6367d9dca160e11b61180c565b60008381526008602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b60008160011161194a5750600081815260066020526040812054908190036119375760025482106118f4576118f4636f96cda160e11b61180c565b5b506000190160008181526006602052604090205480156118f557600160e01b811660000361192257919050565b611932636f96cda160e11b61180c565b6118f5565b600160e01b811660000361194a57919050565b611556636f96cda160e11b61180c565b6000611965836118b9565b90508060008061198386600090815260086020526040902080549091565b9150915084156119ba57611998818433610a26565b6119ba576119a68333611744565b6119ba576119ba632ce44b5f60e11b61180c565b80156119c557600082555b6001600160a01b038316600081815260076020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b17600087815260066020526040812091909155600160e11b85169003611a5357600186016000818152600660205260408120549003611a51576002548114611a515760008181526006602052604090208590555b505b60405186906000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505060038054600101905550505050565b6000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ae9576040519150601f19603f3d011682016040523d82523d6000602084013e611aee565b606091505b5050905080611b3f5760405162461bcd60e51b815260206004820152601a60248201527f506879676974616c413a205472616e73666572206661696c65640000000000006044820152606401610844565b604080516001600160a01b03808816825286166020820152908101849052606081018390527faeadc2c673108f922a1042ef404b73ae1af992c9ae54249a4a7d13ef21ef2c189060800160405180910390a15050505050565b6109da828260405180602001604052806000815250611ce7565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611be7903390899088908890600401612320565b6020604051808303816000875af1925050508015611c22575060408051601f3d908101601f19168201909252611c1f9181019061235d565b60015b611c77573d808015611c50576040519150601f19603f3d011682016040523d82523d6000602084013e611c55565b606091505b508051600003611c6f57611c6f6368d2bf6b60e11b61180c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b6060600b8054610910906121dc565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480611cbd5750819003601f19909101908152919050565b611cf18383611d50565b6001600160a01b0383163b15610ced576002548281035b611d1b6000868380600101945086611bb2565b611d2f57611d2f6368d2bf6b60e11b61180c565b818110611d08578160025414611d4957611d49600061180c565b5050505050565b6002546000829003611d6c57611d6c63b562e8dd60e01b61180c565b60008181526006602090815260408083206001600160a01b0387164260a01b6001881460e11b17811790915580845260079092528220805468010000000000000001860201905590819003611dca57611dca622e076360e81b61180c565b818301825b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4818160010191508103611dcf575060025550505050565b6001600160e01b031981168114610cfd57600080fd5b600060208284031215611e3757600080fd5b81356114ff81611e0f565b80356001600160801b03198116811461155657600080fd5b60008060408385031215611e6d57600080fd5b82359150611e7d60208401611e42565b90509250929050565b60005b83811015611ea1578181015183820152602001611e89565b50506000910152565b60008151808452611ec2816020860160208601611e86565b601f01601f19169290920160200192915050565b6020815260006114ff6020830184611eaa565b600060208284031215611efb57600080fd5b5035919050565b6001600160a01b0381168114610cfd57600080fd5b60008060408385031215611f2a57600080fd5b8235611f3581611f02565b946020939093013593505050565b600080600060608486031215611f5857600080fd5b8335611f6381611f02565b92506020840135611f7381611f02565b929592945050506040919091013590565b60008060408385031215611f9757600080fd5b50508035926020909101359150565b8015158114610cfd57600080fd5b600080600060608486031215611fc957600080fd5b833592506020840135611f7381611fa6565b600060208284031215611fed57600080fd5b81356114ff81611f02565b60006020828403121561200a57600080fd5b6114ff82611e42565b6000806040838503121561202657600080fd5b823561203181611f02565b9150602083013561204181611fa6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561207857600080fd5b843561208381611f02565b9350602085013561209381611f02565b925060408501359150606085013567ffffffffffffffff808211156120b757600080fd5b818701915087601f8301126120cb57600080fd5b8135818111156120dd576120dd61204c565b604051601f8201601f19908116603f011681019083821181831017156121055761210561204c565b816040528281528a602084870101111561211e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060006060848603121561215757600080fd5b83359250602084013561216981611f02565b9150604084013567ffffffffffffffff8116811461218657600080fd5b809150509250925092565b600080604083850312156121a457600080fd5b82356121af81611f02565b9150602083013561204181611f02565b6000602082840312156121d157600080fd5b81516114ff81611fa6565b600181811c908216806121f057607f821691505b60208210810361221057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761077157610771612216565b60008261226057634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f506879676974616c413a2043616c6c6572206973206e6f7420746f6b656e206f60408201526403bb732b9160dd1b606082015260800190565b8082018082111561077157610771612216565b6000602082840312156122cf57600080fd5b81516114ff81611f02565b600083516122ec818460208801611e86565b835190830190612300818360208801611e86565b01949350505050565b60008161231857612318612216565b506000190190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061235390830184611eaa565b9695505050505050565b60006020828403121561236f57600080fd5b81516114ff81611e0f56fea2646970667358221220a4a759999d9992d8636f6df4e8722a5effb17a82aadfa41d7601332fce25ef9664736f6c63430008110033"; type PhygitalAConstructorParams = | [signer?: Signer] @@ -1083,8 +1025,6 @@ export class PhygitalA__factory extends ContractFactory { symbol: string, tradeHubAddress: string, accessControlAddress: string, - domain: string, - _version: string, _maxSupply: BigNumberish, _royaltyBPS: BigNumberish, _baseUri: string, @@ -1095,8 +1035,6 @@ export class PhygitalA__factory extends ContractFactory { symbol, tradeHubAddress, accessControlAddress, - domain, - _version, _maxSupply, _royaltyBPS, _baseUri, @@ -1108,8 +1046,6 @@ export class PhygitalA__factory extends ContractFactory { symbol: string, tradeHubAddress: string, accessControlAddress: string, - domain: string, - _version: string, _maxSupply: BigNumberish, _royaltyBPS: BigNumberish, _baseUri: string, @@ -1120,8 +1056,6 @@ export class PhygitalA__factory extends ContractFactory { symbol, tradeHubAddress, accessControlAddress, - domain, - _version, _maxSupply, _royaltyBPS, _baseUri, diff --git a/typechain-types/factories/Phygital__factory.ts b/typechain-types/factories/Phygital__factory.ts index 5446a97..1e80a54 100644 --- a/typechain-types/factories/Phygital__factory.ts +++ b/typechain-types/factories/Phygital__factory.ts @@ -1,14 +1,7 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { - Signer, - utils, - Contract, - ContractFactory, - Overrides, - BigNumberish, -} from "ethers"; +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { Phygital, PhygitalInterface } from "../Phygital"; @@ -25,11 +18,6 @@ const _abi = [ name: "symbol", type: "string", }, - { - internalType: "uint256", - name: "_nftPrice", - type: "uint256", - }, { internalType: "address", name: "tradeHubAddress", @@ -318,6 +306,25 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes16", + name: "", + type: "bytes16", + }, + ], + name: "assetStatus", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -351,7 +358,7 @@ const _abi = [ }, { internalType: "bytes16", - name: "_nfcId", + name: "_phygitalID", type: "bytes16", }, ], @@ -385,7 +392,7 @@ const _abi = [ }, { internalType: "bytes16", - name: "_nfcId", + name: "_phygitalID", type: "bytes16", }, ], @@ -470,19 +477,13 @@ const _abi = [ type: "function", }, { - inputs: [ - { - internalType: "bytes16", - name: "", - type: "bytes16", - }, - ], - name: "nfcCheck", + inputs: [], + name: "nftPrice", outputs: [ { - internalType: "bool", + internalType: "uint256", name: "", - type: "bool", + type: "uint256", }, ], stateMutability: "view", @@ -492,29 +493,16 @@ const _abi = [ inputs: [ { internalType: "uint256", - name: "", + name: "tokenId", type: "uint256", }, ], - name: "nfcId", - outputs: [ - { - internalType: "bytes16", - name: "", - type: "bytes16", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "nftPrice", + name: "ownerOf", outputs: [ { - internalType: "uint256", + internalType: "address", name: "", - type: "uint256", + type: "address", }, ], stateMutability: "view", @@ -524,16 +512,16 @@ const _abi = [ inputs: [ { internalType: "uint256", - name: "tokenId", + name: "", type: "uint256", }, ], - name: "ownerOf", + name: "phygitalID", outputs: [ { - internalType: "address", + internalType: "bytes16", name: "", - type: "address", + type: "bytes16", }, ], stateMutability: "view", @@ -945,7 +933,7 @@ const _abi = [ ]; const _bytecode = - "0x6080604052600d805460ff60a01b1916600160a01b1790553480156200002457600080fd5b50604051620031cb380380620031cb833981016040819052620000479162000193565b84846000620000578382620002bb565b506001620000668282620002bb565b5050601480546001600160a01b039384166001600160a01b03199182168117909255600c8054959094169481169490941790925550600d8054909216179055600e5550620003879050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d957600080fd5b81516001600160401b0380821115620000f657620000f6620000b1565b604051601f8301601f19908116603f01168101908282118183101715620001215762000121620000b1565b816040528381526020925086838588010111156200013e57600080fd5b600091505b8382101562000162578582018301518183018401529082019062000143565b600093810190920192909252949350505050565b80516001600160a01b03811681146200018e57600080fd5b919050565b600080600080600060a08688031215620001ac57600080fd5b85516001600160401b0380821115620001c457600080fd5b620001d289838a01620000c7565b96506020880151915080821115620001e957600080fd5b50620001f888828901620000c7565b94505060408601519250620002106060870162000176565b9150620002206080870162000176565b90509295509295909350565b600181811c908216806200024157607f821691505b6020821081036200026257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b657600081815260208120601f850160051c81016020861015620002915750805b601f850160051c820191505b81811015620002b2578281556001016200029d565b5050505b505050565b81516001600160401b03811115620002d757620002d7620000b1565b620002ef81620002e884546200022c565b8462000268565b602080601f8311600181146200032757600084156200030e5750858301515b600019600386901b1c1916600185901b178555620002b2565b600085815260208120601f198616915b82811015620003585788860151825594840194600190910190840162000337565b5085821015620003775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612e3480620003976000396000f3fe6080604052600436106102045760003560e01c80636352211e11610118578063a22cb465116100a0578063be0844751161006f578063be084475146106cb578063c2f1f14a146106eb578063c87b56dd1461070b578063e030565e1461072b578063e985e9c51461074b57600080fd5b8063a22cb4651461064b578063a4b110521461066b578063b88d4fde1461068b578063ba91caae146106ab57600080fd5b80637d9a7a4c116100e75780637d9a7a4c146105175780638fc88c4814610537578063912955161461057457806395d89b41146105a45780639874cd97146105b957600080fd5b80636352211e146104a4578063655bc8db146104c457806370a08231146104e4578063783a112b1461050457600080fd5b806323b872dd1161019b57806342842e0e1161016a57806342842e0e146103fb578063474c15201461041b5780634eeca0761461043b5780634f6ccce71461045157806354fd4d501461047157600080fd5b806323b872dd146103335780632a55205a146103535780632f745c591461039257806333c21d2c146103b257600080fd5b80630aa7c854116101d75780630aa7c854146102ba5780630d39fc81146102da5780630e3b2fe7146102fe57806318160ddd1461031e57600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b506102296102243660046124c6565b610794565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b506102536107e5565b6040516102359190612529565b34801561026c57600080fd5b5061028061027b36600461253c565b610877565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b336600461256c565b61089e565b005b3480156102c657600080fd5b50600d54610280906001600160a01b031681565b3480156102e657600080fd5b506102f0600e5481565b604051908152602001610235565b34801561030a57600080fd5b506102f0610319366004612670565b6109b8565b34801561032a57600080fd5b506008546102f0565b34801561033f57600080fd5b506102b861034e3660046126de565b610b90565b34801561035f57600080fd5b5061037361036e36600461271a565b610bc2565b604080516001600160a01b039093168352602083019190915201610235565b34801561039e57600080fd5b506102f06103ad36600461256c565b610c6e565b3480156103be57600080fd5b506103e26103cd36600461253c565b60126020526000908152604090205460801b81565b6040516001600160801b03199091168152602001610235565b34801561040757600080fd5b506102b86104163660046126de565b610d04565b34801561042757600080fd5b506102b861043636600461253c565b610d1f565b34801561044757600080fd5b506102f0600f5481565b34801561045d57600080fd5b506102f061046c36600461253c565b610d9f565b34801561047d57600080fd5b50600d5461049290600160a01b900460ff1681565b60405160ff9091168152602001610235565b3480156104b057600080fd5b506102806104bf36600461253c565b610e32565b3480156104d057600080fd5b506102b86104df36600461274a565b610e92565b3480156104f057600080fd5b506102f06104ff366004612782565b610f34565b6102b861051236600461271a565b610fba565b34801561052357600080fd5b506102b861053236600461253c565b6112f6565b34801561054357600080fd5b506102f061055236600461253c565b600090815260106020526040902054600160a81b90046001600160401b031690565b34801561058057600080fd5b5061022961058f36600461279d565b60136020526000908152604090205460ff1681565b3480156105b057600080fd5b50610253611391565b3480156105c557600080fd5b506106136105d436600461253c565b6010602052600090815260409020805460019091015460ff82169161010081046001600160a01b031691600160a81b9091046001600160401b03169084565b6040805194151585526001600160a01b0390931660208501526001600160401b03909116918301919091526060820152608001610235565b34801561065757600080fd5b506102b86106663660046127b8565b6113a0565b34801561067757600080fd5b50600c54610280906001600160a01b031681565b34801561069757600080fd5b506102b86106a63660046127ef565b6113af565b3480156106b757600080fd5b506102f06106c636600461271a565b6113e7565b3480156106d757600080fd5b506102f06106e636600461286a565b61140b565b3480156106f757600080fd5b5061028061070636600461253c565b611547565b34801561071757600080fd5b5061025361072636600461253c565b61159b565b34801561073757600080fd5b506102b86107463660046128c7565b611691565b34801561075757600080fd5b50610229610766366004612913565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000636ad56fd360e11b6001600160e01b03198316016107b657506001919050565b6314bdb52960e21b6001600160e01b03198316016107d657506001919050565b6107df82611802565b92915050565b6060600080546107f490612946565b80601f016020809104026020016040519081016040528092919081815260200182805461082090612946565b801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b5050505050905090565b600061088282611827565b506000908152600460205260409020546001600160a01b031690565b60006108a982610e32565b9050806001600160a01b0316836001600160a01b03160361091b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061093757506109378133610766565b6109a95760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610912565b6109b38383611877565b505050565b6014546000906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a359190612980565b610a515760405162461bcd60e51b81526004016109129061299d565b6001600160801b0319821660009081526013602052604090205460ff1615610a8b5760405162461bcd60e51b8152600401610912906129de565b600f8054906000610a9b83612a38565b9091555050600f5460008181526012602090815260408083208054608088901c6001600160801b0319918216179091558616835260139091529020805460ff19166001179055610aeb86826118e5565b610af581866118ff565b6103e8846001600160601b03161115610b205760405162461bcd60e51b815260040161091290612a51565b610b2b81878661196c565b600c54610b42906001600160a01b031660016113a0565b856001600160a01b03167fb3892a92dea2c514f2bb56dbca6f8784b48e8b0a15938028e69a62c105a8f1c28287604051610b7d929190612a99565b60405180910390a290505b949350505050565b610b9b335b82611a7a565b610bb75760405162461bcd60e51b815260040161091290612ab2565b6109b3838383611af8565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610c37575060408051808201909152600a546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610c56906001600160601b031687612aff565b610c609190612b16565b915196919550909350505050565b6000610c7983610f34565b8210610cdb5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610912565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6109b3838383604051806020016040528060008152506113af565b610d2833610b95565b610d445760405162461bcd60e51b815260040161091290612b38565b610d4d81611c69565b807f0adc791222843a140d53786c349cfe25882232ec03fe4250d96d021abfff6a03336040516001600160a01b03909116815260200160405180910390a26000908152600b6020526040812055565b50565b6000610daa60085490565b8210610e0d5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610912565b60088281548110610e2057610e20612b87565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806107df5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610912565b610e9d335b84611a7a565b610eb95760405162461bcd60e51b815260040161091290612b38565b6000838152601060205260409020805460ff1916831515178155600101819055336001600160a01b03167fa9dcc06084f66afbdc1841a28e84400fcbf607131220fdcf404c8502f3c03203848484604051610f27939291909283529015156020830152604082015260600190565b60405180910390a2505050565b60006001600160a01b038216610f9e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610912565b506001600160a01b031660009081526003602052604090205490565b610fc382611d0c565b61100f5760405162461bcd60e51b815260206004820152601b60248201527f506879676974616c3a20496e76616c69646520546f6b656e20496400000000006044820152606401610912565b60008281526010602052604090205460ff1661106d5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c3a204e6f7420617661696c61626c6520666f722072656e746044820152606401610912565b600061107883611547565b6001600160a01b0316146110ce5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c3a204e465420416c726561647920537562736372696265646044820152606401610912565b6000811161112f5760405162461bcd60e51b815260206004820152602860248201527f506879676974616c3a2054696d652063616e2774206265206c65737320746861604482015267371018903437bab960c11b6064820152608401610912565b6110e08111156111945760405162461bcd60e51b815260206004820152602a60248201527f506879676974616c3a2054696d652063616e2774206265206d6f7265207468616044820152696e2036206d6f6e74687360b01b6064820152608401610912565b60006111a083836113e7565b9050803410156111f25760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c3a20496e73756666696369656e742046756e6473000000006044820152606401610912565b6111fb83610e32565b6001600160a01b03166108fc349081150290604051600060405180830381858888f19350505050158015611233573d6000803e3d6000fd5b5060008381526010602052604090208054610100600160a81b031916610100330217815561126383610e10612aff565b61126d9042612b9d565b81546001600160401b0391909116600160a81b0267ffffffffffffffff60a81b1990911617815561129b3390565b8154604051600160a81b9091046001600160401b031681526001600160a01b03919091169085907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe906020015b60405180910390a350505050565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561134c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113709190612980565b61138c5760405162461bcd60e51b81526004016109129061299d565b600e55565b6060600180546107f490612946565b6113ab338383611d29565b5050565b6113b93383611a7a565b6113d55760405162461bcd60e51b815260040161091290612ab2565b6113e184848484611df7565b50505050565b600082815260106020526040812060010154611404908390612aff565b9392505050565b6001600160801b0319811660009081526013602052604081205460ff16156114455760405162461bcd60e51b8152600401610912906129de565b600f805490600061145583612a38565b9091555050600f54600081815260126020908152604080832080546001600160801b0319908116608089901c179091558616835260139091529020805460ff191660011790556114a533826118e5565b6114af81866118ff565b6103e8846001600160601b031611156114da5760405162461bcd60e51b815260040161091290612a51565b6114e581338661196c565b600c546114fc906001600160a01b031660016113a0565b336001600160a01b03167fb3892a92dea2c514f2bb56dbca6f8784b48e8b0a15938028e69a62c105a8f1c28287604051611537929190612a99565b60405180910390a2949350505050565b6000818152601060205260408120544290600160a81b90046001600160401b03161061158e575060009081526010602052604090205461010090046001600160a01b031690565b506000919050565b919050565b60606115a682611d0c565b6115f25760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c3a204e6f6e2d4578697374656e74204173736574000000006044820152606401610912565b6000828152601160205260408120805461160b90612946565b80601f016020809104026020016040519081016040528092919081815260200182805461163790612946565b80156116845780601f1061165957610100808354040283529160200191611684565b820191906000526020600020905b81548152906001019060200180831161166757829003601f168201915b5093979650505050505050565b61169a33610e97565b6116f45760405162461bcd60e51b815260206004820152602560248201527f506879676974616c3a204e6f7420746f6b656e206f776e6572204f72206170706044820152641c9bdd995960da1b6064820152608401610912565b60006116ff84611547565b6001600160a01b0316146117615760405162461bcd60e51b8152602060048201526024808201527f506879676974616c3a206974656d20697320616c7265616479207375627363726044820152631a58995960e21b6064820152608401610912565b60008381526010602052604090208054610100600160a81b0319166101006001600160a01b038516021781556117974283612bb0565b815467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831681029190911780845560405191900490911681526001600160a01b0384169085907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe906020016112e8565b60006001600160e01b0319821663152a902d60e11b14806107df57506107df82611e2a565b61183081611d0c565b610d9c5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610912565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906118ac82610e32565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6113ab828260405180602001604052806000815250611e4f565b61190882611d0c565b6119545760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c3a204e6f6e2d4578697374656e74204173736574000000006044820152606401610912565b60008281526011602052604090206109b38282612c25565b6127106001600160601b03821611156119da5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610912565b6001600160a01b038216611a305760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610912565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600b90529190942093519051909116600160a01b029116179055565b600080611a8683610e32565b9050806001600160a01b0316846001600160a01b03161480611acd57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610b885750836001600160a01b0316611ae684610877565b6001600160a01b031614949350505050565b826001600160a01b0316611b0b82610e32565b6001600160a01b031614611b315760405162461bcd60e51b815260040161091290612ce4565b6001600160a01b038216611b935760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610912565b611ba08383836001611e82565b826001600160a01b0316611bb382610e32565b6001600160a01b031614611bd95760405162461bcd60e51b815260040161091290612ce4565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611c7482610e32565b9050611c84816000846001611e82565b611c8d82610e32565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000908152600260205260409020546001600160a01b0316151590565b816001600160a01b0316836001600160a01b031603611d8a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610912565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611e02848484611af8565b611e0e84848484611f23565b6113e15760405162461bcd60e51b815260040161091290612d29565b60006001600160e01b0319821663780e9d6360e01b14806107df57506107df82612021565b611e598383612071565b611e666000848484611f23565b6109b35760405162461bcd60e51b815260040161091290612d29565b611e8e848484846121ec565b826001600160a01b0316846001600160a01b031614158015611ecb575060008281526010602052604090205461010090046001600160a01b031615155b156113e157600082815260106020908152604080832080546001600160e81b03191681556001018390555182815284917f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe91016112e8565b60006001600160a01b0384163b1561201957604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611f67903390899088908890600401612d7b565b6020604051808303816000875af1925050508015611fa2575060408051601f3d908101601f19168201909252611f9f91810190612db8565b60015b611fff573d808015611fd0576040519150601f19603f3d011682016040523d82523d6000602084013e611fd5565b606091505b508051600003611ff75760405162461bcd60e51b815260040161091290612d29565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b88565b506001610b88565b60006001600160e01b031982166380ac58cd60e01b148061205257506001600160e01b03198216635b5e139f60e01b145b806107df57506301ffc9a760e01b6001600160e01b03198316146107df565b6001600160a01b0382166120c75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610912565b6120d081611d0c565b1561211d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610912565b61212b600083836001611e82565b61213481611d0c565b156121815760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610912565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600181111561225b5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610912565b816001600160a01b0385166122b7576122b281600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6122da565b836001600160a01b0316856001600160a01b0316146122da576122da8582612320565b6001600160a01b0384166122f6576122f1816123bd565b612319565b846001600160a01b0316846001600160a01b03161461231957612319848261246c565b5050505050565b6000600161232d84610f34565b6123379190612dd5565b60008381526007602052604090205490915080821461238a576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906123cf90600190612dd5565b600083815260096020526040812054600880549394509092849081106123f7576123f7612b87565b90600052602060002001549050806008838154811061241857612418612b87565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061245057612450612de8565b6001900381819060005260206000200160009055905550505050565b600061247783610f34565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b031981168114610d9c57600080fd5b6000602082840312156124d857600080fd5b8135611404816124b0565b6000815180845260005b81811015612509576020818501810151868301820152016124ed565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061140460208301846124e3565b60006020828403121561254e57600080fd5b5035919050565b80356001600160a01b038116811461159657600080fd5b6000806040838503121561257f57600080fd5b61258883612555565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b03808411156125c6576125c6612596565b604051601f8501601f19908116603f011681019082821181831017156125ee576125ee612596565b8160405280935085815286868601111561260757600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261263257600080fd5b611404838335602085016125ac565b80356001600160601b038116811461159657600080fd5b80356001600160801b03198116811461159657600080fd5b6000806000806080858703121561268657600080fd5b61268f85612555565b935060208501356001600160401b038111156126aa57600080fd5b6126b687828801612621565b9350506126c560408601612641565b91506126d360608601612658565b905092959194509250565b6000806000606084860312156126f357600080fd5b6126fc84612555565b925061270a60208501612555565b9150604084013590509250925092565b6000806040838503121561272d57600080fd5b50508035926020909101359150565b8015158114610d9c57600080fd5b60008060006060848603121561275f57600080fd5b8335925060208401356127718161273c565b929592945050506040919091013590565b60006020828403121561279457600080fd5b61140482612555565b6000602082840312156127af57600080fd5b61140482612658565b600080604083850312156127cb57600080fd5b6127d483612555565b915060208301356127e48161273c565b809150509250929050565b6000806000806080858703121561280557600080fd5b61280e85612555565b935061281c60208601612555565b92506040850135915060608501356001600160401b0381111561283e57600080fd5b8501601f8101871361284f57600080fd5b61285e878235602084016125ac565b91505092959194509250565b60008060006060848603121561287f57600080fd5b83356001600160401b0381111561289557600080fd5b6128a186828701612621565b9350506128b060208501612641565b91506128be60408501612658565b90509250925092565b6000806000606084860312156128dc57600080fd5b833592506128ec60208501612555565b915060408401356001600160401b038116811461290857600080fd5b809150509250925092565b6000806040838503121561292657600080fd5b61292f83612555565b915061293d60208401612555565b90509250929050565b600181811c9082168061295a57607f821691505b60208210810361297a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561299257600080fd5b81516114048161273c565b60208082526021908201527f506879676974616c3a2055736572206973206e6f7420617574686f72697a65646040820152600160fd1b606082015260800190565b60208082526024908201527f506879676974616c3a204e46432054616720697320616c72656164792073746f6040820152637265642160e01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060018201612a4a57612a4a612a22565b5060010190565b60208082526028908201527f506879676974616c3a20526f79616c74792063616e2774206265206d6f7265206040820152677468616e2031302560c01b606082015260800190565b828152604060208201526000610b8860408301846124e3565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b80820281158282048414176107df576107df612a22565b600082612b3357634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602f908201527f506879676974616c3a2043616c6c6572206973206e6f7420746f6b656e206f7760408201526e1b995c881bdc88185c1c1c9bdd9959608a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b808201808211156107df576107df612a22565b6001600160401b03818116838216019080821115612bd057612bd0612a22565b5092915050565b601f8211156109b357600081815260208120601f850160051c81016020861015612bfe5750805b601f850160051c820191505b81811015612c1d57828155600101612c0a565b505050505050565b81516001600160401b03811115612c3e57612c3e612596565b612c5281612c4c8454612946565b84612bd7565b602080601f831160018114612c875760008415612c6f5750858301515b600019600386901b1c1916600185901b178555612c1d565b600085815260208120601f198616915b82811015612cb657888601518255948401946001909101908401612c97565b5085821015612cd45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612dae908301846124e3565b9695505050505050565b600060208284031215612dca57600080fd5b8151611404816124b0565b818103818111156107df576107df612a22565b634e487b7160e01b600052603160045260246000fdfea264697066735822122012faff52c0a1e2f8b78271d90b9d703728dae8c75a86e36e6157d819ead0944c64736f6c63430008110033"; + "0x6080604052600d805460ff60a01b1916600160a01b1790553480156200002457600080fd5b506040516200329338038062003293833981016040819052620000479162000190565b83836000620000578382620002ae565b506001620000668282620002ae565b5050601480546001600160a01b039384166001600160a01b03199182168117909255600c8054959094169481169490941790925550600d8054909216179055506200037a9050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d657600080fd5b81516001600160401b0380821115620000f357620000f3620000ae565b604051601f8301601f19908116603f011681019082821181831017156200011e576200011e620000ae565b816040528381526020925086838588010111156200013b57600080fd5b600091505b838210156200015f578582018301518183018401529082019062000140565b600093810190920192909252949350505050565b80516001600160a01b03811681146200018b57600080fd5b919050565b60008060008060808587031215620001a757600080fd5b84516001600160401b0380821115620001bf57600080fd5b620001cd88838901620000c4565b95506020870151915080821115620001e457600080fd5b50620001f387828801620000c4565b935050620002046040860162000173565b9150620002146060860162000173565b905092959194509250565b600181811c908216806200023457607f821691505b6020821081036200025557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002a957600081815260208120601f850160051c81016020861015620002845750805b601f850160051c820191505b81811015620002a55782815560010162000290565b5050505b505050565b81516001600160401b03811115620002ca57620002ca620000ae565b620002e281620002db84546200021f565b846200025b565b602080601f8311600181146200031a5760008415620003015750858301515b600019600386901b1c1916600185901b178555620002a5565b600085815260208120601f198616915b828110156200034b578886015182559484019460019091019084016200032a565b50858210156200036a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612f09806200038a6000396000f3fe6080604052600436106102045760003560e01c80636352211e11610118578063a22cb465116100a0578063be0844751161006f578063be084475146106cb578063c2f1f14a146106eb578063c87b56dd1461070b578063e030565e1461072b578063e985e9c51461074b57600080fd5b8063a22cb4651461064b578063a4b110521461066b578063b88d4fde1461068b578063ba91caae146106ab57600080fd5b80637d9a7a4c116100e75780637d9a7a4c146105175780637e57f7de146105375780638fc88c481461056757806395d89b41146105a45780639874cd97146105b957600080fd5b80636352211e146104a4578063655bc8db146104c457806370a08231146104e4578063783a112b1461050457600080fd5b806323b872dd1161019b578063474c15201161016a578063474c1520146103d25780634eeca076146103f25780634f6ccce7146104085780634f7170dd1461042857806354fd4d501461047157600080fd5b806323b872dd146103335780632a55205a146103535780632f745c591461039257806342842e0e146103b257600080fd5b80630aa7c854116101d75780630aa7c854146102ba5780630d39fc81146102da5780630e3b2fe7146102fe57806318160ddd1461031e57600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b5061022961022436600461259b565b610794565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b506102536107e5565b60405161023591906125fe565b34801561026c57600080fd5b5061028061027b366004612611565b610877565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b3366004612641565b61089e565b005b3480156102c657600080fd5b50600d54610280906001600160a01b031681565b3480156102e657600080fd5b506102f0600e5481565b604051908152602001610235565b34801561030a57600080fd5b506102f0610319366004612745565b6109b8565b34801561032a57600080fd5b506008546102f0565b34801561033f57600080fd5b506102b861034e3660046127b3565b610b90565b34801561035f57600080fd5b5061037361036e3660046127ef565b610bc2565b604080516001600160a01b039093168352602083019190915201610235565b34801561039e57600080fd5b506102f06103ad366004612641565b610c6e565b3480156103be57600080fd5b506102b86103cd3660046127b3565b610d04565b3480156103de57600080fd5b506102b86103ed366004612611565b610d1f565b3480156103fe57600080fd5b506102f0600f5481565b34801561041457600080fd5b506102f0610423366004612611565b610d9f565b34801561043457600080fd5b50610458610443366004612611565b60126020526000908152604090205460801b81565b6040516001600160801b03199091168152602001610235565b34801561047d57600080fd5b50600d5461049290600160a01b900460ff1681565b60405160ff9091168152602001610235565b3480156104b057600080fd5b506102806104bf366004612611565b610e32565b3480156104d057600080fd5b506102b86104df36600461281f565b610e92565b3480156104f057600080fd5b506102f06104ff366004612857565b610f34565b6102b86105123660046127ef565b610fba565b34801561052357600080fd5b506102b8610532366004612611565b6112f6565b34801561054357600080fd5b50610229610552366004612872565b60136020526000908152604090205460ff1681565b34801561057357600080fd5b506102f0610582366004612611565b600090815260106020526040902054600160a81b90046001600160401b031690565b3480156105b057600080fd5b50610253611391565b3480156105c557600080fd5b506106136105d4366004612611565b6010602052600090815260409020805460019091015460ff82169161010081046001600160a01b031691600160a81b9091046001600160401b03169084565b6040805194151585526001600160a01b0390931660208501526001600160401b03909116918301919091526060820152608001610235565b34801561065757600080fd5b506102b861066636600461288d565b6113a0565b34801561067757600080fd5b50600c54610280906001600160a01b031681565b34801561069757600080fd5b506102b86106a63660046128c4565b6113af565b3480156106b757600080fd5b506102f06106c63660046127ef565b6113e7565b3480156106d757600080fd5b506102f06106e636600461293f565b61140b565b3480156106f757600080fd5b50610280610706366004612611565b611610565b34801561071757600080fd5b50610253610726366004612611565b611664565b34801561073757600080fd5b506102b861074636600461299c565b611766565b34801561075757600080fd5b506102296107663660046129e8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000636ad56fd360e11b6001600160e01b03198316016107b657506001919050565b6314bdb52960e21b6001600160e01b03198316016107d657506001919050565b6107df826118d7565b92915050565b6060600080546107f490612a1b565b80601f016020809104026020016040519081016040528092919081815260200182805461082090612a1b565b801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b5050505050905090565b6000610882826118fc565b506000908152600460205260409020546001600160a01b031690565b60006108a982610e32565b9050806001600160a01b0316836001600160a01b03160361091b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061093757506109378133610766565b6109a95760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610912565b6109b3838361194c565b505050565b6014546000906001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a359190612a55565b610a515760405162461bcd60e51b815260040161091290612a72565b6001600160801b0319821660009081526013602052604090205460ff1615610a8b5760405162461bcd60e51b815260040161091290612ab3565b600f8054906000610a9b83612b0d565b9091555050600f5460008181526012602090815260408083208054608088901c6001600160801b0319918216179091558616835260139091529020805460ff19166001179055610aeb86826119ba565b610af581866119d4565b6103e8846001600160601b03161115610b205760405162461bcd60e51b815260040161091290612b26565b610b2b818786611a41565b600c54610b42906001600160a01b031660016113a0565b856001600160a01b03167fb3892a92dea2c514f2bb56dbca6f8784b48e8b0a15938028e69a62c105a8f1c28287604051610b7d929190612b6e565b60405180910390a290505b949350505050565b610b9b335b82611b4f565b610bb75760405162461bcd60e51b815260040161091290612b87565b6109b3838383611bcd565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610c37575060408051808201909152600a546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610c56906001600160601b031687612bd4565b610c609190612beb565b915196919550909350505050565b6000610c7983610f34565b8210610cdb5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610912565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6109b3838383604051806020016040528060008152506113af565b610d2833610b95565b610d445760405162461bcd60e51b815260040161091290612c0d565b610d4d81611d3e565b807f0adc791222843a140d53786c349cfe25882232ec03fe4250d96d021abfff6a03336040516001600160a01b03909116815260200160405180910390a26000908152600b6020526040812055565b50565b6000610daa60085490565b8210610e0d5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610912565b60088281548110610e2057610e20612c5c565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806107df5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610912565b610e9d335b84611b4f565b610eb95760405162461bcd60e51b815260040161091290612c0d565b6000838152601060205260409020805460ff1916831515178155600101819055336001600160a01b03167fa9dcc06084f66afbdc1841a28e84400fcbf607131220fdcf404c8502f3c03203848484604051610f27939291909283529015156020830152604082015260600190565b60405180910390a2505050565b60006001600160a01b038216610f9e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610912565b506001600160a01b031660009081526003602052604090205490565b610fc382611de1565b61100f5760405162461bcd60e51b815260206004820152601b60248201527f506879676974616c3a20496e76616c69646520546f6b656e20496400000000006044820152606401610912565b60008281526010602052604090205460ff1661106d5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c3a204e6f7420617661696c61626c6520666f722072656e746044820152606401610912565b600061107883611610565b6001600160a01b0316146110ce5760405162461bcd60e51b815260206004820181905260248201527f506879676974616c3a204e465420416c726561647920537562736372696265646044820152606401610912565b6000811161112f5760405162461bcd60e51b815260206004820152602860248201527f506879676974616c3a2054696d652063616e2774206265206c65737320746861604482015267371018903437bab960c11b6064820152608401610912565b6110e08111156111945760405162461bcd60e51b815260206004820152602a60248201527f506879676974616c3a2054696d652063616e2774206265206d6f7265207468616044820152696e2036206d6f6e74687360b01b6064820152608401610912565b60006111a083836113e7565b9050803410156111f25760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c3a20496e73756666696369656e742046756e6473000000006044820152606401610912565b6111fb83610e32565b6001600160a01b03166108fc349081150290604051600060405180830381858888f19350505050158015611233573d6000803e3d6000fd5b5060008381526010602052604090208054610100600160a81b031916610100330217815561126383610e10612bd4565b61126d9042612c72565b81546001600160401b0391909116600160a81b0267ffffffffffffffff60a81b1990911617815561129b3390565b8154604051600160a81b9091046001600160401b031681526001600160a01b03919091169085907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe906020015b60405180910390a350505050565b6014546001600160a01b0316636d70f7ae336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561134c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113709190612a55565b61138c5760405162461bcd60e51b815260040161091290612a72565b600e55565b6060600180546107f490612a1b565b6113ab338383611dfe565b5050565b6113b93383611b4f565b6113d55760405162461bcd60e51b815260040161091290612b87565b6113e184848484611ecc565b50505050565b600082815260106020526040812060010154611404908390612bd4565b9392505050565b6014546000906001600160a01b031663efd46065336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114889190612a55565b6114d45760405162461bcd60e51b815260206004820181905260248201527f506879676974616c3a2055736572206973206e6f7420617574686f72697a65646044820152606401610912565b6001600160801b0319821660009081526013602052604090205460ff161561150e5760405162461bcd60e51b815260040161091290612ab3565b600f805490600061151e83612b0d565b9091555050600f54600081815260126020908152604080832080546001600160801b0319908116608089901c179091558616835260139091529020805460ff1916600117905561156e33826119ba565b61157881866119d4565b6103e8846001600160601b031611156115a35760405162461bcd60e51b815260040161091290612b26565b6115ae813386611a41565b600c546115c5906001600160a01b031660016113a0565b336001600160a01b03167fb3892a92dea2c514f2bb56dbca6f8784b48e8b0a15938028e69a62c105a8f1c28287604051611600929190612b6e565b60405180910390a2949350505050565b6000818152601060205260408120544290600160a81b90046001600160401b031610611657575060009081526010602052604090205461010090046001600160a01b031690565b506000919050565b919050565b606061166f82611de1565b6116c75760405162461bcd60e51b815260206004820152602360248201527f5369676e61747572655365726965733a204e6f6e2d4578697374656e742041736044820152621cd95d60ea1b6064820152608401610912565b600082815260116020526040812080546116e090612a1b565b80601f016020809104026020016040519081016040528092919081815260200182805461170c90612a1b565b80156117595780601f1061172e57610100808354040283529160200191611759565b820191906000526020600020905b81548152906001019060200180831161173c57829003601f168201915b5093979650505050505050565b61176f33610e97565b6117c95760405162461bcd60e51b815260206004820152602560248201527f506879676974616c3a204e6f7420746f6b656e206f776e6572204f72206170706044820152641c9bdd995960da1b6064820152608401610912565b60006117d484611610565b6001600160a01b0316146118365760405162461bcd60e51b8152602060048201526024808201527f506879676974616c3a206974656d20697320616c7265616479207375627363726044820152631a58995960e21b6064820152608401610912565b60008381526010602052604090208054610100600160a81b0319166101006001600160a01b0385160217815561186c4283612c85565b815467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831681029190911780845560405191900490911681526001600160a01b0384169085907f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe906020016112e8565b60006001600160e01b0319821663152a902d60e11b14806107df57506107df82611eff565b61190581611de1565b610d9c5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610912565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061198182610e32565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6113ab828260405180602001604052806000815250611f24565b6119dd82611de1565b611a295760405162461bcd60e51b815260206004820152601c60248201527f506879676974616c3a204e6f6e2d4578697374656e74204173736574000000006044820152606401610912565b60008281526011602052604090206109b38282612cfa565b6127106001600160601b0382161115611aaf5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610912565b6001600160a01b038216611b055760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610912565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600b90529190942093519051909116600160a01b029116179055565b600080611b5b83610e32565b9050806001600160a01b0316846001600160a01b03161480611ba257506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610b885750836001600160a01b0316611bbb84610877565b6001600160a01b031614949350505050565b826001600160a01b0316611be082610e32565b6001600160a01b031614611c065760405162461bcd60e51b815260040161091290612db9565b6001600160a01b038216611c685760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610912565b611c758383836001611f57565b826001600160a01b0316611c8882610e32565b6001600160a01b031614611cae5760405162461bcd60e51b815260040161091290612db9565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611d4982610e32565b9050611d59816000846001611f57565b611d6282610e32565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000908152600260205260409020546001600160a01b0316151590565b816001600160a01b0316836001600160a01b031603611e5f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610912565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611ed7848484611bcd565b611ee384848484611ff8565b6113e15760405162461bcd60e51b815260040161091290612dfe565b60006001600160e01b0319821663780e9d6360e01b14806107df57506107df826120f6565b611f2e8383612146565b611f3b6000848484611ff8565b6109b35760405162461bcd60e51b815260040161091290612dfe565b611f63848484846122c1565b826001600160a01b0316846001600160a01b031614158015611fa0575060008281526010602052604090205461010090046001600160a01b031615155b156113e157600082815260106020908152604080832080546001600160e81b03191681556001018390555182815284917f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe91016112e8565b60006001600160a01b0384163b156120ee57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061203c903390899088908890600401612e50565b6020604051808303816000875af1925050508015612077575060408051601f3d908101601f1916820190925261207491810190612e8d565b60015b6120d4573d8080156120a5576040519150601f19603f3d011682016040523d82523d6000602084013e6120aa565b606091505b5080516000036120cc5760405162461bcd60e51b815260040161091290612dfe565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b88565b506001610b88565b60006001600160e01b031982166380ac58cd60e01b148061212757506001600160e01b03198216635b5e139f60e01b145b806107df57506301ffc9a760e01b6001600160e01b03198316146107df565b6001600160a01b03821661219c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610912565b6121a581611de1565b156121f25760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610912565b612200600083836001611f57565b61220981611de1565b156122565760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610912565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60018111156123305760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610912565b816001600160a01b03851661238c5761238781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6123af565b836001600160a01b0316856001600160a01b0316146123af576123af85826123f5565b6001600160a01b0384166123cb576123c681612492565b6123ee565b846001600160a01b0316846001600160a01b0316146123ee576123ee8482612541565b5050505050565b6000600161240284610f34565b61240c9190612eaa565b60008381526007602052604090205490915080821461245f576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906124a490600190612eaa565b600083815260096020526040812054600880549394509092849081106124cc576124cc612c5c565b9060005260206000200154905080600883815481106124ed576124ed612c5c565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061252557612525612ebd565b6001900381819060005260206000200160009055905550505050565b600061254c83610f34565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b031981168114610d9c57600080fd5b6000602082840312156125ad57600080fd5b813561140481612585565b6000815180845260005b818110156125de576020818501810151868301820152016125c2565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061140460208301846125b8565b60006020828403121561262357600080fd5b5035919050565b80356001600160a01b038116811461165f57600080fd5b6000806040838503121561265457600080fd5b61265d8361262a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561269b5761269b61266b565b604051601f8501601f19908116603f011681019082821181831017156126c3576126c361266b565b816040528093508581528686860111156126dc57600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261270757600080fd5b61140483833560208501612681565b80356001600160601b038116811461165f57600080fd5b80356001600160801b03198116811461165f57600080fd5b6000806000806080858703121561275b57600080fd5b6127648561262a565b935060208501356001600160401b0381111561277f57600080fd5b61278b878288016126f6565b93505061279a60408601612716565b91506127a86060860161272d565b905092959194509250565b6000806000606084860312156127c857600080fd5b6127d18461262a565b92506127df6020850161262a565b9150604084013590509250925092565b6000806040838503121561280257600080fd5b50508035926020909101359150565b8015158114610d9c57600080fd5b60008060006060848603121561283457600080fd5b83359250602084013561284681612811565b929592945050506040919091013590565b60006020828403121561286957600080fd5b6114048261262a565b60006020828403121561288457600080fd5b6114048261272d565b600080604083850312156128a057600080fd5b6128a98361262a565b915060208301356128b981612811565b809150509250929050565b600080600080608085870312156128da57600080fd5b6128e38561262a565b93506128f16020860161262a565b92506040850135915060608501356001600160401b0381111561291357600080fd5b8501601f8101871361292457600080fd5b61293387823560208401612681565b91505092959194509250565b60008060006060848603121561295457600080fd5b83356001600160401b0381111561296a57600080fd5b612976868287016126f6565b93505061298560208501612716565b91506129936040850161272d565b90509250925092565b6000806000606084860312156129b157600080fd5b833592506129c16020850161262a565b915060408401356001600160401b03811681146129dd57600080fd5b809150509250925092565b600080604083850312156129fb57600080fd5b612a048361262a565b9150612a126020840161262a565b90509250929050565b600181811c90821680612a2f57607f821691505b602082108103612a4f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612a6757600080fd5b815161140481612811565b60208082526021908201527f506879676974616c3a2055736572206973206e6f7420617574686f72697a65646040820152600160fd1b606082015260800190565b60208082526024908201527f506879676974616c3a204e46432054616720697320616c72656164792073746f6040820152637265642160e01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060018201612b1f57612b1f612af7565b5060010190565b60208082526028908201527f506879676974616c3a20526f79616c74792063616e2774206265206d6f7265206040820152677468616e2031302560c01b606082015260800190565b828152604060208201526000610b8860408301846125b8565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b80820281158282048414176107df576107df612af7565b600082612c0857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602f908201527f506879676974616c3a2043616c6c6572206973206e6f7420746f6b656e206f7760408201526e1b995c881bdc88185c1c1c9bdd9959608a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b808201808211156107df576107df612af7565b6001600160401b03818116838216019080821115612ca557612ca5612af7565b5092915050565b601f8211156109b357600081815260208120601f850160051c81016020861015612cd35750805b601f850160051c820191505b81811015612cf257828155600101612cdf565b505050505050565b81516001600160401b03811115612d1357612d1361266b565b612d2781612d218454612a1b565b84612cac565b602080601f831160018114612d5c5760008415612d445750858301515b600019600386901b1c1916600185901b178555612cf2565b600085815260208120601f198616915b82811015612d8b57888601518255948401946001909101908401612d6c565b5085821015612da95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612e83908301846125b8565b9695505050505050565b600060208284031215612e9f57600080fd5b815161140481612585565b818103818111156107df576107df612af7565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220afb2f227ef6726d6998333390b8aa93c49c5a0b5691e42d53051dfca28de6c4a64736f6c63430008110033"; type PhygitalConstructorParams = | [signer?: Signer] @@ -968,7 +956,6 @@ export class Phygital__factory extends ContractFactory { deploy( name: string, symbol: string, - _nftPrice: BigNumberish, tradeHubAddress: string, flowContract: string, overrides?: Overrides & { from?: string | Promise } @@ -976,7 +963,6 @@ export class Phygital__factory extends ContractFactory { return super.deploy( name, symbol, - _nftPrice, tradeHubAddress, flowContract, overrides || {} @@ -985,7 +971,6 @@ export class Phygital__factory extends ContractFactory { getDeployTransaction( name: string, symbol: string, - _nftPrice: BigNumberish, tradeHubAddress: string, flowContract: string, overrides?: Overrides & { from?: string | Promise } @@ -993,7 +978,6 @@ export class Phygital__factory extends ContractFactory { return super.getDeployTransaction( name, symbol, - _nftPrice, tradeHubAddress, flowContract, overrides || {} diff --git a/typechain-types/factories/UserNFT__factory.ts b/typechain-types/factories/UserNFT__factory.ts new file mode 100644 index 0000000..03bd9b1 --- /dev/null +++ b/typechain-types/factories/UserNFT__factory.ts @@ -0,0 +1,403 @@ +/* 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 { UserNFT, UserNFTInterface } from "../UserNFT"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "approved", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + 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: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "approve", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + 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: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ownerOf", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "safeMint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + 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: "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: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x60806040523480156200001157600080fd5b5060405180604001604052806008815260200167155cd95c8813919560c21b815250604051806040016040528060048152602001631553919560e21b81525081600090816200006191906200011e565b5060016200007082826200011e565b505050620001ea565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a457607f821691505b602082108103620000c557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011957600081815260208120601f850160051c81016020861015620000f45750805b601f850160051c820191505b81811015620001155782815560010162000100565b5050505b505050565b81516001600160401b038111156200013a576200013a62000079565b62000152816200014b84546200008f565b84620000cb565b602080601f8311600181146200018a5760008415620001715750858301515b600019600386901b1c1916600185901b17855562000115565b600085815260208120601f198616915b82811015620001bb578886015182559484019460019091019084016200019a565b5085821015620001da5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61133680620001fa6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636871ee401161008c578063a22cb46511610066578063a22cb465146101d6578063b88d4fde146101e9578063c87b56dd146101fc578063e985e9c51461020f57600080fd5b80636871ee40146101a557806370a08231146101ad57806395d89b41146101ce57600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f5780636352211e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610e9b565b61024b565b60405190151581526020015b60405180910390f35b61011f61029d565b60405161010e9190610f08565b61013f61013a366004610f1b565b61032f565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610f50565b610356565b005b61016a61017a366004610f7a565b610470565b61016a61018d366004610f7a565b6104a1565b61013f6101a0366004610f1b565b6104bc565b61016a61051c565b6101c06101bb366004610fb6565b610540565b60405190815260200161010e565b61011f6105c6565b61016a6101e4366004610fd1565b6105d5565b61016a6101f7366004611023565b6105e4565b61011f61020a366004610f1b565b61061c565b61010261021d3660046110ff565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061027c57506001600160e01b03198216635b5e139f60e01b145b8061029757506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546102ac90611132565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611132565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b600061033a82610690565b506000908152600460205260409020546001600160a01b031690565b6000610361826104bc565b9050806001600160a01b0316836001600160a01b0316036103d35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103ef57506103ef813361021d565b6104615760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016103ca565b61046b83836106ef565b505050565b61047a338261075d565b6104965760405162461bcd60e51b81526004016103ca9061116c565b61046b8383836107dc565b61046b838383604051806020016040528060008152506105e4565b6000818152600260205260408120546001600160a01b0316806102975760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103ca565b600680546000918261052d836111b9565b91905055905061053d3382610940565b50565b60006001600160a01b0382166105aa5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103ca565b506001600160a01b031660009081526003602052604090205490565b6060600180546102ac90611132565b6105e033838361095a565b5050565b6105ee338361075d565b61060a5760405162461bcd60e51b81526004016103ca9061116c565b61061684848484610a28565b50505050565b606061062782610690565b600061063e60408051602081019091526000815290565b9050600081511161065e5760405180602001604052806000815250610689565b8061066884610a5b565b6040516020016106799291906111e0565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b031661053d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103ca565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610724826104bc565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610769836104bc565b9050806001600160a01b0316846001600160a01b031614806107b057506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107d45750836001600160a01b03166107c98461032f565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ef826104bc565b6001600160a01b0316146108155760405162461bcd60e51b81526004016103ca9061120f565b6001600160a01b0382166108775760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103ca565b826001600160a01b031661088a826104bc565b6001600160a01b0316146108b05760405162461bcd60e51b81526004016103ca9061120f565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105e0828260405180602001604052806000815250610aee565b816001600160a01b0316836001600160a01b0316036109bb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103ca565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a338484846107dc565b610a3f84848484610b21565b6106165760405162461bcd60e51b81526004016103ca90611254565b60606000610a6883610c22565b600101905060008167ffffffffffffffff811115610a8857610a8861100d565b6040519080825280601f01601f191660200182016040528015610ab2576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610abc57509392505050565b610af88383610cfa565b610b056000848484610b21565b61046b5760405162461bcd60e51b81526004016103ca90611254565b60006001600160a01b0384163b15610c1757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b659033908990889088906004016112a6565b6020604051808303816000875af1925050508015610ba0575060408051601f3d908101601f19168201909252610b9d918101906112e3565b60015b610bfd573d808015610bce576040519150601f19603f3d011682016040523d82523d6000602084013e610bd3565b606091505b508051600003610bf55760405162461bcd60e51b81526004016103ca90611254565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506107d4565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c615772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c8d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610cab57662386f26fc10000830492506010015b6305f5e1008310610cc3576305f5e100830492506008015b6127108310610cd757612710830492506004015b60648310610ce9576064830492506002015b600a83106102975760010192915050565b6001600160a01b038216610d505760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016103ca565b6000818152600260205260409020546001600160a01b031615610db55760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016103ca565b6000818152600260205260409020546001600160a01b031615610e1a5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016103ca565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461053d57600080fd5b600060208284031215610ead57600080fd5b813561068981610e85565b60005b83811015610ed3578181015183820152602001610ebb565b50506000910152565b60008151808452610ef4816020860160208601610eb8565b601f01601f19169290920160200192915050565b6020815260006106896020830184610edc565b600060208284031215610f2d57600080fd5b5035919050565b80356001600160a01b0381168114610f4b57600080fd5b919050565b60008060408385031215610f6357600080fd5b610f6c83610f34565b946020939093013593505050565b600080600060608486031215610f8f57600080fd5b610f9884610f34565b9250610fa660208501610f34565b9150604084013590509250925092565b600060208284031215610fc857600080fd5b61068982610f34565b60008060408385031215610fe457600080fd5b610fed83610f34565b91506020830135801515811461100257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561103957600080fd5b61104285610f34565b935061105060208601610f34565b925060408501359150606085013567ffffffffffffffff8082111561107457600080fd5b818701915087601f83011261108857600080fd5b81358181111561109a5761109a61100d565b604051601f8201601f19908116603f011681019083821181831017156110c2576110c261100d565b816040528281528a60208487010111156110db57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561111257600080fd5b61111b83610f34565b915061112960208401610f34565b90509250929050565b600181811c9082168061114657607f821691505b60208210810361116657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6000600182016111d957634e487b7160e01b600052601160045260246000fd5b5060010190565b600083516111f2818460208801610eb8565b835190830190611206818360208801610eb8565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906112d990830184610edc565b9695505050505050565b6000602082840312156112f557600080fd5b815161068981610e8556fea2646970667358221220f57cc70e8fb6c1b198e453fc55cf345c2e5ace9051c8e8fd4d127759d7e7766164736f6c63430008110033"; + +type UserNFTConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UserNFTConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UserNFT__factory extends ContractFactory { + constructor(...args: UserNFTConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + this.contractName = "UserNFT"; + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UserNFT { + return super.attach(address) as UserNFT; + } + connect(signer: Signer): UserNFT__factory { + return super.connect(signer) as UserNFT__factory; + } + static readonly contractName: "UserNFT"; + public readonly contractName: "UserNFT"; + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UserNFTInterface { + return new utils.Interface(_abi) as UserNFTInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UserNFT { + return new Contract(address, _abi, signerOrProvider) as UserNFT; + } +}