diff --git a/package.json b/package.json
index f0e8139..1359187 100644
--- a/package.json
+++ b/package.json
@@ -1,101 +1,100 @@
{
- "name": "frontend",
- "version": "1.0.0",
- "private": true,
- "dependencies": {
- "@emotion/react": "^11.8.2",
- "@emotion/styled": "^11.8.1",
- "@ethersproject/providers": "^5.4.1",
- "@fortawesome/fontawesome-svg-core": "latest",
- "@fortawesome/free-solid-svg-icons": "latest",
- "@fortawesome/react-fontawesome": "latest",
- "@mui/icons-material": "^5.5.0",
- "@mui/lab": "^5.0.0-alpha.72",
- "@mui/material": "^5.5.0",
- "@mui/styles": "^5.5.0",
- "@reduxjs/toolkit": "^1.4.0",
- "@spiritswap/sdk": "https://github.com/Layer3Org/spiritswap-sdk",
- "@spookyswap/sdk": "https://github.com/GameTheoryTech/spookyswap-sdk",
- "@testing-library/jest-dom": "^4.2.4",
- "@testing-library/react": "^9.3.2",
- "@testing-library/user-event": "^7.1.2",
- "@types/humanize-plus": "^1.8.0",
- "@types/jest": "^26.0.9",
- "@types/node": "^14.0.27",
- "@types/react": "^16.9.46",
- "@types/react-redux": "^7.1.9",
- "axios": "^0.25.0",
- "bignumber.js": "^9.0.0",
- "clsx": "^1.1.1",
- "ethers": "^5.4.1",
- "gh-pages": "^3.2.3",
- "moment": "^2.29.1",
- "mui-image": "^1.0.4",
- "numeral": "^2.0.6",
- "process": "^0.11.10",
- "react": "^16.13.1",
- "react-circular-progressbar": "^2.0.3",
- "react-countdown": "^2.2.1",
- "react-countup": "^4.3.3",
- "react-dom": "^16.13.1",
- "react-feather": "^2.0.8",
- "react-loading-skeleton": "^2.1.1",
- "react-player": "^2.10.0",
- "react-redux": "^7.2.1",
- "react-router-dom": "^5.2.0",
- "react-scripts": "^4.0.3",
- "react-spring": "^8.0.27",
- "redux-localstorage-simple": "^2.3.1",
- "styled-components": "^5.1.1",
- "swiper": "^8.1.1",
- "typescript": "^3.9.7",
- "use-wallet": "OGBoogieTomb/use-wallet",
- "web3": "^1.2.11"
- },
- "resolutions": {
- "react-error-overlay": "^6.0.9"
- },
- "scripts": {
- "start": "react-scripts start",
- "build": "react-scripts build",
- "test": "react-scripts test",
- "eject": "react-scripts eject",
- "predeploy": "react-scripts build",
- "deploy": "gh-pages -b master -d build"
- },
- "homepage": "https://gametheory.tech",
- "eslintConfig": {
- "extends": "react-app",
- "env": {
- "browser": true,
- "node": true
+ "name": "frontend",
+ "version": "1.0.0",
+ "private": true,
+ "dependencies": {
+ "@emotion/react": "^11.8.2",
+ "@emotion/styled": "^11.8.1",
+ "@ethersproject/providers": "^5.4.1",
+ "@fortawesome/fontawesome-svg-core": "latest",
+ "@fortawesome/free-solid-svg-icons": "latest",
+ "@fortawesome/react-fontawesome": "latest",
+ "@mui/icons-material": "^5.5.0",
+ "@mui/lab": "^5.0.0-alpha.72",
+ "@mui/material": "^5.5.0",
+ "@mui/styles": "^5.5.0",
+ "@reduxjs/toolkit": "^1.4.0",
+ "@spiritswap/sdk": "https://github.com/Layer3Org/spiritswap-sdk",
+ "@spookyswap/sdk": "https://github.com/GameTheoryTech/spookyswap-sdk",
+ "@testing-library/jest-dom": "^4.2.4",
+ "@testing-library/react": "^9.3.2",
+ "@testing-library/user-event": "^7.1.2",
+ "@types/humanize-plus": "^1.8.0",
+ "@types/jest": "^26.0.9",
+ "@types/node": "^14.0.27",
+ "@types/react": "^16.9.46",
+ "@types/react-redux": "^7.1.9",
+ "axios": "^0.25.0",
+ "bignumber.js": "^9.0.0",
+ "clsx": "^1.1.1",
+ "ethers": "^5.4.1",
+ "gh-pages": "^3.2.3",
+ "moment": "^2.29.1",
+ "mui-image": "^1.0.4",
+ "numeral": "^2.0.6",
+ "process": "^0.11.10",
+ "react": "^16.13.1",
+ "react-circular-progressbar": "^2.0.3",
+ "react-countdown": "^2.2.1",
+ "react-countup": "^4.3.3",
+ "react-data-sort": "^1.2.1",
+ "react-dom": "^16.13.1",
+ "react-feather": "^2.0.8",
+ "react-loading-skeleton": "^2.1.1",
+ "react-player": "^2.10.0",
+ "react-redux": "^7.2.1",
+ "react-router-dom": "^5.2.0",
+ "react-scripts": "^4.0.3",
+ "react-spring": "^8.0.27",
+ "redux-localstorage-simple": "^2.3.1",
+ "styled-components": "^5.1.1",
+ "swiper": "^8.1.1",
+ "typescript": "^3.9.7",
+ "use-wallet": "OGBoogieTomb/use-wallet",
+ "web3": "^1.2.11",
+ "web3modal": "^1.9.7"
},
- "rules": {
- "no-unused-vars": "off"
+ "resolutions": {
+ "@types/react": "^16.9.46",
+ "@types/react-dom": "^16.9.8"
+ },
+ "scripts": {
+ "start": "react-scripts start",
+ "build": "react-scripts build",
+ "test": "react-scripts test",
+ "eject": "react-scripts eject",
+ "predeploy": "react-scripts build",
+ "deploy": "gh-pages -b master -d build"
+ },
+ "homepage": "https://gametheory.tech",
+ "eslintConfig": {
+ "extends": "react-app",
+ "env": {
+ "browser": true,
+ "node": true
+ },
+ "rules": {
+ "no-unused-vars": "off"
+ }
+ },
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ },
+ "devDependencies": {
+ "@types/numeral": "0.0.28",
+ "@types/react-dom": "^16.9.8",
+ "@types/react-router-dom": "^5.1.5",
+ "@types/styled-components": "^5.1.2",
+ "prettier": "2.3.1",
+ "react-error-overlay": "^6.0.9"
}
- },
- "browserslist": {
- "production": [
- ">0.2%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
- },
- "devDependencies": {
- "@types/numeral": "0.0.28",
- "@types/react-dom": "^16.9.8",
- "@types/react-router-dom": "^5.1.5",
- "@types/styled-components": "^5.1.2",
- "prettier": "2.3.1",
- "react-error-overlay": "^6.0.9"
- },
- "resolutions": {
- "@types/react": "^16.9.46",
- "@types/react-dom": "^16.9.8"
- }
}
diff --git a/src/App.tsx b/src/App.tsx
index f5f97c8..7ae5086 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -26,55 +26,59 @@ const Treasury = lazy(() => import('./views/Treasury'));
const About = lazy(() => import('./views/About'));
const Nft = lazy(() => import('./views/Nft'));
const Dungeon = lazy(() => import('./views/Dungeon'));
+const MarketPlace = lazy(() => import('./views/NftMarketplace'));
// const SBS = lazy(() => import('./views/Sbs'));
// const Liquidity = lazy(() => import('./views/Liquidity'));
const NoMatch = () => (
-
+
);
const App: React.FC = () => {
- // Clear localStorage for mobile users
- if (typeof localStorage.version_app === 'undefined' || localStorage.version_app !== '1.1') {
- localStorage.clear();
- localStorage.setItem('connectorId', '');
- localStorage.setItem('version_app', '1.1');
- }
+ // Clear localStorage for mobile users
+ if (typeof localStorage.version_app === 'undefined' || localStorage.version_app !== '1.1') {
+ localStorage.clear();
+ localStorage.setItem('connectorId', '');
+ localStorage.setItem('version_app', '1.1');
+ }
- usePromptNetwork();
+ usePromptNetwork();
- return (
-
-
- }>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {/*
+ return (
+
+
+ }>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/*
@@ -83,50 +87,50 @@ const App: React.FC = () => {
*/}
-
-
-
-
-
-
-
- );
+
+
+
+
+
+
+
+ );
};
const Providers: React.FC = ({ children }) => {
- return (
-
-
-
-
-
-
-
-
-
- <>
-
- {children}
- >
-
-
-
-
-
-
-
-
- );
+ return (
+
+
+
+
+
+
+
+
+
+ <>
+
+ {children}
+ >
+
+
+
+
+
+
+
+
+ );
};
export default App;
diff --git a/src/tomb-finance/TombFinance.ts b/src/tomb-finance/TombFinance.ts
index d2c0581..98253fe 100644
--- a/src/tomb-finance/TombFinance.ts
+++ b/src/tomb-finance/TombFinance.ts
@@ -28,7 +28,9 @@ export class TombFinance {
config: Configuration;
contracts: { [name: string]: Contract };
externalTokens: { [name: string]: ERC20 };
- masonryVersionOfUser?: string;
+ masonryVersionOfUser?: string;
+ contractAddress: { [name: string]: string };
+ contractABI: { [name: string]: any[] };
TOMBDAI_LP: Contract;
TOMBDAI_LPToken: ERC20;
@@ -46,7 +48,17 @@ export class TombFinance {
this.contracts = {};
for (const [name, deployment] of Object.entries(deployments)) {
this.contracts[name] = new Contract(deployment.address, deployment.abi, provider);
- }
+ }
+
+ this.contractAddress = {};
+ for (const [name, deployment] of Object.entries(deployments)) {
+ this.contractAddress[name] = deployment.address;
+ }
+ this.contractABI = {};
+ for (const [name, deployment] of Object.entries(deployments)) {
+ this.contractABI[name] = deployment.abi;
+ }
+
this.externalTokens = {};
for (const [symbol, [address, decimal]] of Object.entries(externalTokens)) {
this.externalTokens[symbol] = new ERC20(address, provider, symbol, decimal);
@@ -1082,6 +1094,46 @@ export class TombFinance {
return result;
}
+ async getTheoryUnlockerABI(): Promise {
+ const { TheoryUnlocker } = this.contractABI;
+ return TheoryUnlocker;
+ }
+
+ async getTheoryUnlockerAddress(): Promise {
+ const { TheoryUnlocker } = this.contractAddress;
+ return TheoryUnlocker;
+ }
+
+ async getTheoryUnlockerGen1ABI(): Promise {
+ const { TheoryUnlockerGen1 } = this.contractABI;
+ return TheoryUnlockerGen1;
+ }
+
+ async getTheoryUnlockerGen1Address(): Promise {
+ const { TheoryUnlockerGen1 } = this.contractAddress;
+ return TheoryUnlockerGen1;
+ }
+
+ async getMarketplaceABI(): Promise {
+ const { Marketplace } = this.contractABI;
+ return Marketplace;
+ }
+
+ async getMarketplaceAddress(): Promise {
+ const { Marketplace } = this.contractAddress;
+ return Marketplace;
+ }
+
+ async getGameContractABI(): Promise {
+ const { game } = this.contractABI;
+ return game;
+ }
+
+ async getGameContractAddress(): Promise {
+ const { game } = this.contractAddress;
+ return game;
+ }
+
async unlockTheory(isGen1 : boolean, tokenId : number | BigNumber): Promise {
const { TheoryUnlocker, TheoryUnlockerGen1, theory } = this.contracts;
if(BigNumber.from(tokenId).gt(0))
diff --git a/src/tomb-finance/deployments/deployments.testing.json b/src/tomb-finance/deployments/deployments.testing.json
index 25f3fbd..76e0164 100644
--- a/src/tomb-finance/deployments/deployments.testing.json
+++ b/src/tomb-finance/deployments/deployments.testing.json
@@ -1,10842 +1,11326 @@
{
- "Oracle": {
- "address": "0x5D5579A0A2d695Ab92CCD7D2d184f02d1474aAa9",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "contract IUniswapV2Pair",
- "name": "_pair",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_period",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_startTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "price0CumulativeLast",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "price1CumulativeLast",
- "type": "uint256"
- }
- ],
- "name": "Updated",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "blockTimestampLast",
- "outputs": [
- {
- "internalType": "uint32",
- "name": "",
- "type": "uint32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amountIn",
- "type": "uint256"
- }
- ],
- "name": "consult",
- "outputs": [
- {
- "internalType": "uint144",
- "name": "amountOut",
- "type": "uint144"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getCurrentEpoch",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getLastEpochTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getPeriod",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getStartTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "nextEpochPoint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "pair",
- "outputs": [
- {
- "internalType": "contract IUniswapV2Pair",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "price0Average",
- "outputs": [
- {
- "internalType": "uint224",
- "name": "_x",
- "type": "uint224"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "price0CumulativeLast",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "price1Average",
- "outputs": [
- {
- "internalType": "uint224",
- "name": "_x",
- "type": "uint224"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "price1CumulativeLast",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_epoch",
- "type": "uint256"
- }
- ],
- "name": "setEpoch",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_period",
- "type": "uint256"
- }
- ],
- "name": "setPeriod",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "token0",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "token1",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amountIn",
- "type": "uint256"
- }
- ],
- "name": "twap",
- "outputs": [
- {
- "internalType": "uint144",
- "name": "_amountOut",
- "type": "uint144"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "update",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
- },
- "game": {
- "address": "0x9b343B2fF740E7d4935a4C26c8f94DaD73b5f2ad",
- "abi": [
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Lock",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Unlock",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burnFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "canUnlockAmount",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "circulatingSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_genesisPool",
- "type": "address"
- }
- ],
- "name": "distributeReward",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "governanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "lastUnlockTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "lock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "lockFromTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_newLockFrom",
- "type": "uint256"
- }
- ],
- "name": "lockFromUpdate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "lockOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "lockTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "lockedSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient_",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount_",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "noUnlockBeforeTransfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "rewardPoolDistributed",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_lockTime",
- "type": "uint256"
- }
- ],
- "name": "setLockTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "_noUnlockBeforeTransfer",
- "type": "bool"
- }
- ],
- "name": "setNoUnlockBeforeTransfer",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "totalBalanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalLock",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unlock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "unlockForUser",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unlockedSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
- ]
- },
- "theory": {
- "address": "0x330e5d339C84524B99a02Df30c086b01fcE41614",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_startTime",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_communityFund",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_devFund",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_lockFromTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_lockToTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Lock",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Unlock",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "COMMUNITY_FUND_POOL_ALLOCATION",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "DEV_FUND_POOL_ALLOCATION",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "VESTING_DURATION",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burnFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "canUnlockAmount",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "claimRewards",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "communityFund",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "communityFundLastClaimed",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "communityFundRewardRate",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "devFund",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "devFundLastClaimed",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "devFundRewardRate",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_farmingIncentiveFund",
- "type": "address"
- }
- ],
- "name": "distributeReward",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "endTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "governanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "lastUnlockTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "lock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "lockFromTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "lockOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "lockToTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "noUnlockBeforeTransfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "rewardPoolDistributed",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_devFund",
- "type": "address"
- }
- ],
- "name": "setDevFund",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "_noUnlockBeforeTransfer",
- "type": "bool"
- }
- ],
- "name": "setNoUnlockBeforeTransfer",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_communityFund",
- "type": "address"
- }
- ],
- "name": "setTreasuryFund",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "startTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "totalBalanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "transferAll",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unclaimedDevFund",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_pending",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unclaimedTreasuryFund",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_pending",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unlock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "unlockForUser",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
- },
- "hodl": {
- "address": "0x3d8A41215098207fEc2988fA79faA7Fd35A434F2",
- "abi": [
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burnFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient_",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount_",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
- },
- "Treasury": {
- "address": "0x55c6B3105ace3752e2414930D8767Df50Fb2f513",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "gameAmount",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "bondAmount",
- "type": "uint256"
- }
- ],
- "name": "BoughtBonds",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "bondAmount",
- "type": "uint256"
- }
- ],
- "name": "BurnedBonds",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "timestamp",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "seigniorage",
- "type": "uint256"
- }
- ],
- "name": "DaoFundFunded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "timestamp",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "seigniorage",
- "type": "uint256"
- }
- ],
- "name": "DevFundFunded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "executor",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "at",
- "type": "uint256"
- }
- ],
- "name": "Initialized",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "gameAmount",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "bondAmount",
- "type": "uint256"
- }
- ],
- "name": "RedeemedBonds",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "timestamp",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "seigniorage",
- "type": "uint256"
- }
- ],
- "name": "TreasuryFunded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "timestamp",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "seigniorage",
- "type": "uint256"
- }
- ],
- "name": "theoreticsFunded",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "PERIOD",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "allocateSeigniorage",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "bondDepletionFloorPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "bondSupplyExpansionPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "bondTreasury",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "bootstrapEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "bootstrapSupplyExpansionPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_gameAmount",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "targetPrice",
- "type": "uint256"
- }
- ],
- "name": "buyBonds",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "daoFund",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "daoFundSharedPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "devFund",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "devFundSharedPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "discountPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "epoch",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "epochSupplyContractionLeft",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "excludedFromTotalSupply",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "game",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "gameOracle",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "gamePriceCeiling",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "gamePriceOne",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getBondDiscountRate",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_rate",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getBondPremiumRate",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_rate",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getBurnableGameLeft",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_burnableGameLeft",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getGameCirculatingSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getGamePrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "gamePrice",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getGameUpdatedPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_gamePrice",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getRedeemableBonds",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_redeemableBonds",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getReserve",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "governanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "hodl",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_game",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_hodl",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_theory",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_gameOracle",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_theoretics",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_genesisPool",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_startTime",
- "type": "uint256"
- }
- ],
- "name": "initialize",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "initialized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isInitialized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxDebtRatioPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxDiscountRate",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "maxExpansionTiers",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxPremiumRate",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxSupplyContractionPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxSupplyExpansionPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "mintingFactorForPayingDebt",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "nextEpochPoint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "premiumPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "premiumThreshold",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "previousEpochGamePrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_bondAmount",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "targetPrice",
- "type": "uint256"
- }
- ],
- "name": "redeemBonds",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "seigniorageExpansionFloorPercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "seigniorageSaved",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_bondDepletionFloorPercent",
- "type": "uint256"
- }
- ],
- "name": "setBondDepletionFloorPercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_bondSupplyExpansionPercent",
- "type": "uint256"
- }
- ],
- "name": "setBondSupplyExpansionPercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_bootstrapEpochs",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_bootstrapSupplyExpansionPercent",
- "type": "uint256"
- }
- ],
- "name": "setBootstrap",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_discountPercent",
- "type": "uint256"
- }
- ],
- "name": "setDiscountPercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_daoFund",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_daoFundSharedPercent",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_devFund",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_devFundSharedPercent",
- "type": "uint256"
- }
- ],
- "name": "setExtraFunds",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_gameOracle",
- "type": "address"
- }
- ],
- "name": "setGameOracle",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_gamePriceCeiling",
- "type": "uint256"
- }
- ],
- "name": "setGamePriceCeiling",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_maxDebtRatioPercent",
- "type": "uint256"
- }
- ],
- "name": "setMaxDebtRatioPercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_maxDiscountRate",
- "type": "uint256"
- }
- ],
- "name": "setMaxDiscountRate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint8",
- "name": "_index",
- "type": "uint8"
- },
- {
- "internalType": "uint256",
- "name": "_value",
- "type": "uint256"
- }
- ],
- "name": "setMaxExpansionTiersEntry",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_maxPremiumRate",
- "type": "uint256"
- }
- ],
- "name": "setMaxPremiumRate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_maxSupplyContractionPercent",
- "type": "uint256"
- }
- ],
- "name": "setMaxSupplyContractionPercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_maxSupplyExpansionPercent",
- "type": "uint256"
- }
- ],
- "name": "setMaxSupplyExpansionPercents",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_mintingFactorForPayingDebt",
- "type": "uint256"
- }
- ],
- "name": "setMintingFactorForPayingDebt",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_operator",
- "type": "address"
- }
- ],
- "name": "setOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_premiumPercent",
- "type": "uint256"
- }
- ],
- "name": "setPremiumPercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_premiumThreshold",
- "type": "uint256"
- }
- ],
- "name": "setPremiumThreshold",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setStartTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint8",
- "name": "_index",
- "type": "uint8"
- },
- {
- "internalType": "uint256",
- "name": "_value",
- "type": "uint256"
- }
- ],
- "name": "setSupplyTiersEntry",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_theoretics",
- "type": "address"
- }
- ],
- "name": "setTheoretics",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "startTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "supplyTiers",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theoretics",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "theoreticsAllocateSeigniorage",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theoreticsGetCurrentClaimEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theoreticsGetCurrentWithdrawEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theoreticsGetLockPercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- }
- ],
- "name": "theoreticsGetWithdrawFeeOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "theoreticsGovernanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_withdrawLockupEpochs",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_rewardLockupEpochs",
- "type": "uint256"
- }
- ],
- "name": "theoreticsSetLockUp",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_operator",
- "type": "address"
- }
- ],
- "name": "theoreticsSetOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theory",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
- ]
- },
- "Theoretics": {
- "address": "0x8b1455618B07Fa4Ef1f67F9f85b8a7CE6588b513",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "executor",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "at",
- "type": "uint256"
- }
- ],
- "name": "Initialized",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "reward",
- "type": "uint256"
- }
- ],
- "name": "RewardAdded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "reward",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "lockAmount",
- "type": "uint256"
- }
- ],
- "name": "RewardPaid",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "Staked",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "Withdrawn",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "allocateSeigniorage",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "theorist",
- "type": "address"
- }
- ],
- "name": "canClaimReward",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "theorist",
- "type": "address"
- }
- ],
- "name": "canWithdraw",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "claimReward",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "theorist",
- "type": "address"
- }
- ],
- "name": "earned",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "epoch",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "exit",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "farm",
- "outputs": [
- {
- "internalType": "contract IFarm",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "feeStagePercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "feeStageTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "game",
- "outputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getCurrentClaimEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getCurrentWithdrawEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getGamePrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "theorist",
- "type": "address"
- }
- ],
- "name": "getLastSnapshotIndexOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getLockPercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- }
- ],
- "name": "getWithdrawFeeOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "governanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "_game",
- "type": "address"
- },
- {
- "internalType": "contract IERC20Lockable",
- "name": "_share",
- "type": "address"
- },
- {
- "internalType": "contract ITreasury",
- "name": "_treasury",
- "type": "address"
- },
- {
- "internalType": "contract IFarm",
- "name": "_farm",
- "type": "address"
- }
- ],
- "name": "initialize",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "initialized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "latestSnapshotIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "nextEpochPoint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "pegMaxUnlock",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "reviseDeposit",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "reviseWithdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "rewardLockupEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "rewardPerShare",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "sameBlockFee",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_feeStageTime",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_feeStagePercentage",
- "type": "uint256[]"
- }
- ],
- "name": "setFeeStages",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_withdrawLockupEpochs",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_rewardLockupEpochs",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_pegMaxUnlock",
- "type": "uint256"
- }
- ],
- "name": "setLockUp",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_fee",
- "type": "uint256"
- }
- ],
- "name": "setSameBlockFee",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "share",
- "outputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "stake",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "theoreticsHistory",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardReceived",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardPerShare",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "theorists",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "lastSnapshotIndex",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardEarned",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "epochTimerStart",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastDepositBlock",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastWithdrawTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "firstDepositTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasury",
- "outputs": [
- {
- "internalType": "contract ITreasury",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "withdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "withdrawLockupEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
- ]
- },
- "GameGenesisRewardPool": {
- "address": "0x5713201Bbd87bBbECd690D76903BdBbaCc4EC77C",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_game",
- "type": "address"
- },
- {
- "internalType": "contract ITreasury",
- "name": "_treasury",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_poolStartTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "pid",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "Deposit",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "pid",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "EmergencyWithdraw",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "RewardPaid",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "pid",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "Withdraw",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_allocPoint",
- "type": "uint256"
- },
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "_withUpdate",
- "type": "bool"
- },
- {
- "internalType": "uint256",
- "name": "_lastRewardTime",
- "type": "uint256"
- }
- ],
- "name": "add",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "deposit",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "depositFee",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- }
- ],
- "name": "emergencyWithdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "forceMassUpdatePools",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- }
- ],
- "name": "forceUpdatePool",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "game",
- "outputs": [
- {
- "internalType": "contract IERC20",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "gamePerSecond",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- }
- ],
- "name": "getGamePerSecondInPool",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_fromTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_toTime",
- "type": "uint256"
- }
- ],
- "name": "getGeneratedReward",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getRequiredAllocation",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- }
- ],
- "name": "governanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- }
- ],
- "name": "pendingGAME",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "poolEndTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "poolInfo",
- "outputs": [
- {
- "internalType": "contract IERC20",
- "name": "token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "allocPoint",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastRewardTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "accGamePerShare",
- "type": "uint256"
- },
- {
- "internalType": "bool",
- "name": "isStarted",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "poolStartTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "runningTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_allocPoint",
- "type": "uint256"
- }
- ],
- "name": "set",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_depositFee",
- "type": "uint256"
- }
- ],
- "name": "setDepositFee",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setPoolEndTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setPoolStartTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalAllocPoint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasury",
- "outputs": [
- {
- "internalType": "contract ITreasury",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "userInfo",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardDebt",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "withdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
- },
- "TheoryRewardPool": {
- "address": "0x085DAD9Ac4E8EF88Ff2B12218401dE015A36eB0d",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_theory",
- "type": "address"
- },
- {
- "internalType": "contract ITreasury",
- "name": "_treasury",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_poolStartTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_halvingAfterTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256[]",
- "name": "_rewardMultiplier",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_percentLockBonusRewards",
- "type": "uint256[]"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "pid",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "Deposit",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "pid",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "EmergencyWithdraw",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOperator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOperator",
- "type": "address"
- }
- ],
- "name": "OperatorTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "lockAmount",
- "type": "uint256"
- }
- ],
- "name": "RewardPaid",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "pid",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "Withdraw",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "FINISH_BONUS_AT_TIME",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "HALVING_AT_TIME",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "PERCENT_LOCK_BONUS_REWARD",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "REWARD_MULTIPLIER",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_allocPoint",
- "type": "uint256"
- },
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "_withUpdate",
- "type": "bool"
- },
- {
- "internalType": "uint256",
- "name": "_lastRewardTime",
- "type": "uint256"
- }
- ],
- "name": "add",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "baseTheoryPerSecond",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_newFinish",
- "type": "uint256"
- }
- ],
- "name": "bonusFinishUpdate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "deposit",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- }
- ],
- "name": "emergencyWithdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "feeStagePercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "feeStageTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "forceMassUpdatePools",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- }
- ],
- "name": "forceUpdatePool",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- }
- ],
- "name": "getCurrentLockPercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_fromTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_toTime",
- "type": "uint256"
- }
- ],
- "name": "getGeneratedReward",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_from",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_to",
- "type": "uint256"
- }
- ],
- "name": "getLockPercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_from",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_to",
- "type": "uint256"
- }
- ],
- "name": "getMultiplier",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "getRequiredAllocation",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- }
- ],
- "name": "getTheoryPerSecondInPool",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- }
- ],
- "name": "getWithdrawFeeOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- }
- ],
- "name": "governanceRecoverUnsupported",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_newHalving",
- "type": "uint256[]"
- }
- ],
- "name": "halvingUpdate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isOperator",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_newLock",
- "type": "uint256[]"
- }
- ],
- "name": "lockUpdate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "operator",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- }
- ],
- "name": "pendingShare",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "poolEndTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "poolInfo",
- "outputs": [
- {
- "internalType": "contract IERC20",
- "name": "token",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "allocPoint",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastRewardTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "accTheoryPerShare",
- "type": "uint256"
- },
- {
- "internalType": "bool",
- "name": "isStarted",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "poolStartTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "reviseDeposit",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "reviseWithdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_newMulReward",
- "type": "uint256[]"
- }
- ],
- "name": "rewardMulUpdate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "runningTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "sameBlockFee",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_allocPoint",
- "type": "uint256"
- }
- ],
- "name": "set",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_feeStageTime",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_feeStagePercentage",
- "type": "uint256[]"
- }
- ],
- "name": "setFeeStages",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setPoolEndTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setPoolStartTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_fee",
- "type": "uint256"
- }
- ],
- "name": "setSameBlockFee",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theory",
- "outputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalAllocPoint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOperator_",
- "type": "address"
- }
- ],
- "name": "transferOperator",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasury",
- "outputs": [
- {
- "internalType": "contract ITreasury",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "userInfo",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardDebt",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardDebtAtTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastDepositBlock",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastWithdrawTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "firstDepositTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_pid",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "withdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
- },
- "zapper": {
- "address": "0x2656DaB561f7c4dd0cecb87D94eE2094282B60a9",
- "abi": [
- {
- "inputs": [{ "internalType": "address", "name": "_WNATIVE", "type": "address" }],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- { "indexed": false, "internalType": "address", "name": "fee_to", "type": "address" },
- { "indexed": false, "internalType": "uint16", "name": "rate", "type": "uint16" },
- { "indexed": false, "internalType": "uint16", "name": "min", "type": "uint16" }
- ],
- "name": "FeeChange",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
- { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_LP", "type": "address" },
- { "internalType": "address", "name": "_router", "type": "address" },
- { "internalType": "uint256", "name": "_amt", "type": "uint256" }
- ],
- "name": "estimateZapIn",
- "outputs": [
- { "internalType": "uint256", "name": "", "type": "uint256" },
- { "internalType": "uint256", "name": "", "type": "uint256" }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "address", "name": "_to", "type": "address" },
- { "internalType": "address", "name": "_router", "type": "address" },
- { "internalType": "uint256", "name": "_amt", "type": "uint256" }
- ],
- "name": "estimateZapInToken",
- "outputs": [
- { "internalType": "uint256", "name": "", "type": "uint256" },
- { "internalType": "uint256", "name": "", "type": "uint256" }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
- "stateMutability": "view",
- "type": "function"
- },
- { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
- {
- "inputs": [
- { "internalType": "address", "name": "addr", "type": "address" },
- { "internalType": "uint16", "name": "rate", "type": "uint16" },
- { "internalType": "uint16", "name": "min", "type": "uint16" }
- ],
- "name": "setFee",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "token", "type": "address" },
- { "internalType": "address", "name": "router", "type": "address" },
- { "internalType": "address", "name": "bridgeToken", "type": "address" }
- ],
- "name": "setTokenBridgeForRouter",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [{ "internalType": "address", "name": "router", "type": "address" }],
- "name": "setUseNativeRouter",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "uint256", "name": "amount", "type": "uint256" },
- { "internalType": "address", "name": "routerAddr", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "swapToNative",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "uint256", "name": "amount", "type": "uint256" },
- { "internalType": "address", "name": "_to", "type": "address" },
- { "internalType": "address", "name": "routerAddr", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "swapToken",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [{ "internalType": "address", "name": "", "type": "address" }],
- "name": "useNativeRouter",
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [{ "internalType": "address", "name": "token", "type": "address" }],
- "name": "withdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "uint256", "name": "amount", "type": "uint256" },
- { "internalType": "address", "name": "_toRouter", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "zapAcross",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_to", "type": "address" },
- { "internalType": "address", "name": "routerAddr", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "zapIn",
- "outputs": [],
- "stateMutability": "payable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "uint256", "name": "amount", "type": "uint256" },
- { "internalType": "address", "name": "_to", "type": "address" },
- { "internalType": "address", "name": "routerAddr", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "zapInToken",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "uint256", "name": "amount", "type": "uint256" },
- { "internalType": "address", "name": "routerAddr", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "zapOut",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "address", "name": "_from", "type": "address" },
- { "internalType": "uint256", "name": "amount", "type": "uint256" },
- { "internalType": "address", "name": "_to", "type": "address" },
- { "internalType": "address", "name": "routerAddr", "type": "address" },
- { "internalType": "address", "name": "_recipient", "type": "address" }
- ],
- "name": "zapOutToken",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- { "stateMutability": "payable", "type": "receive" }
- ]
- },
- "SpookyRouter": {
- "address": "0xa6AD18C2aC47803E193F75c3677b14BF19B94883",
- "abi": [{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
- },
- "TheoryUnlocker": {
- "address": "0x24559C54724704F1B909eA668DD7C72df0B9BCcc",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_buy",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_initialBuy",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_buyPerLevel",
- "type": "uint256"
- },
- {
- "internalType": "contract IERC20Lockable",
- "name": "_theory",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "_communityFund",
- "type": "address"
- },
- {
- "internalType": "uint256[]",
- "name": "_maxLevelTime",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_maxLevelLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_levelURIsLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "string[]",
- "name": "_levelURIsURI",
- "type": "string[]"
- }
- ],
- "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": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "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": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "baseURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "buyToken",
- "outputs": [
- {
- "internalType": "contract IERC20",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "buyTokenPerLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "player",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "canUnlockAmount",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "communityFund",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "costOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "disableMint",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "getApproved",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "initialPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "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": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "levelURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "levelUp",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "maxLevelLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "maxLevelTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId1",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "tokenId2",
- "type": "uint256"
- }
- ],
- "name": "merge",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "nextLevelTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "nftUnlock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "ownerOf",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "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": "contract IERC20",
- "name": "_buy",
- "type": "address"
- }
- ],
- "name": "setBuyToken",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_perLevel",
- "type": "uint256"
- }
- ],
- "name": "setBuyTokenPerLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_fund",
- "type": "address"
- }
- ],
- "name": "setCommunityFund",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- }
- ],
- "name": "setCreationTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "_disable",
- "type": "bool"
- }
- ],
- "name": "setDisableMint",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_initial",
- "type": "uint256"
- }
- ],
- "name": "setInitialPrice",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- }
- ],
- "name": "setLastLevelTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "setLastLockAmount",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- }
- ],
- "name": "setLastUnlockTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_levelURIsLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "string[]",
- "name": "_levelURIsURI",
- "type": "string[]"
- }
- ],
- "name": "setLevelURIs",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_maxLevelTime",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_maxLevelLevel",
- "type": "uint256[]"
- }
- ],
- "name": "setMaxLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setTimeToLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "setTokenLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceId",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theory",
- "outputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "timeLeftToLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "timeToLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "index",
- "type": "uint256"
- }
- ],
- "name": "tokenByIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "tokenInfo",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "creationTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastLevelTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "index",
- "type": "uint256"
- }
- ],
- "name": "tokenOfOwnerByIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "tokenURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "userInfo",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "lastUnlockTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastLockAmount",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
- ]
- },
- "TheoryUnlockerGen1": {
- "address": "0x50bB33375af32EAf42af72c6004bAAd931042632",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_buy",
- "type": "address"
- },
- {
- "internalType": "uint256[2]",
- "name": "_prices",
- "type": "uint256[2]"
- },
- {
- "internalType": "contract IERC20Lockable[2]",
- "name": "_theoryAndGame",
- "type": "address[2]"
- },
- {
- "internalType": "address",
- "name": "_communityFund",
- "type": "address"
- },
- {
- "internalType": "contract ITheoryUnlocker",
- "name": "_gen0",
- "type": "address"
- },
- {
- "internalType": "contract IUniswapV2Router",
- "name": "_router",
- "type": "address"
- },
- {
- "internalType": "uint256[]",
- "name": "_maxLevelTime",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_maxLevelLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_levelURIsLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "string[]",
- "name": "_levelURIsURI",
- "type": "string[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_levelURIsMax",
- "type": "uint256[]"
- }
- ],
- "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": false,
- "internalType": "address",
- "name": "who",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "leveledTo",
- "type": "uint256"
- }
- ],
- "name": "Level",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "who",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "tokenId1",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "tokenId2",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "level1",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "level2",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "levelMerged",
- "type": "uint256"
- }
- ],
- "name": "Merge",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "who",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "Mint",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "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"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "who",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountToUnlock",
- "type": "uint256"
- }
- ],
- "name": "Unlock",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "TheoryUnlockerGen0",
- "outputs": [
- {
- "internalType": "contract ITheoryUnlocker",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "baseURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "burnPercentage",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "buyToken",
- "outputs": [
- {
- "internalType": "contract IERC20",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "buyTokenPerLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "player",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "canUnlockAmount",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "communityFund",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "costOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "disableMint",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "emergencyDisableUnlock",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "extraGameCost",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "extraGameCostAmount",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "extraGameCostLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "game",
- "outputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "gameCostPerLevel",
- "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": [],
- "name": "initialPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "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": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "levelURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsMax",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsMinted",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "levelURIsURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "levelUp",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "theLevel",
- "type": "uint256"
- }
- ],
- "name": "levelUpTo",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "levelUpToMax",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "maxLevelLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "maxLevelTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "maxMinted",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId1",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "tokenId2",
- "type": "uint256"
- }
- ],
- "name": "merge",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "slippage",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "minted",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "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": "nextLevelTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "nftUnlock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "ownerOf",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "router",
- "outputs": [
- {
- "internalType": "contract IUniswapV2Router",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "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": "uint256",
- "name": "_burn",
- "type": "uint256"
- }
- ],
- "name": "setBurnPercentage",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_buy",
- "type": "address"
- }
- ],
- "name": "setBuyToken",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_fund",
- "type": "address"
- }
- ],
- "name": "setCommunityFund",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- }
- ],
- "name": "setCreationTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "_disable",
- "type": "bool"
- }
- ],
- "name": "setDisableMint",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "_disable",
- "type": "bool"
- }
- ],
- "name": "setEmergencyDisableUnlock",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_gameCostPerLevel",
- "type": "uint256"
- },
- {
- "internalType": "uint256[]",
- "name": "_extraGameCostLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_extraGameCostAmount",
- "type": "uint256[]"
- }
- ],
- "name": "setGameCostForLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- }
- ],
- "name": "setLastLevelTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "setLastLockAmount",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- }
- ],
- "name": "setLastUnlockTime",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_levelURIsLevel",
- "type": "uint256[]"
- },
- {
- "internalType": "string[]",
- "name": "_levelURIsURI",
- "type": "string[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_levelURIsMax",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_levelURIsSupply",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_levelURIsMinted",
- "type": "uint256[]"
- }
- ],
- "name": "setLevelURIs",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "_maxLevelTime",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "_maxLevelLevel",
- "type": "uint256[]"
- }
- ],
- "name": "setMaxLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_initial",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_perLevel",
- "type": "uint256"
- }
- ],
- "name": "setPrices",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IUniswapV2Router",
- "name": "_router",
- "type": "address"
- }
- ],
- "name": "setRouter",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_time",
- "type": "uint256"
- }
- ],
- "name": "setTimeToLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "setTokenLevel",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- }
- ],
- "name": "supply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceId",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "theory",
- "outputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "timeLeftToLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "timeToLevel",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "index",
- "type": "uint256"
- }
- ],
- "name": "tokenByIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "tokenInfo",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "level",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "creationTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastLevelTime",
- "type": "uint256"
- },
- {
- "internalType": "bool",
- "name": "merged",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "index",
- "type": "uint256"
- }
- ],
- "name": "tokenOfOwnerByIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "tokenURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
- },
- "Master": {
- "address": "0x6860af20ED7362c67d80A21E447d65861Fe83086",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "contract IERC20Lockable",
- "name": "_theory",
- "type": "address"
- },
- {
- "internalType": "contract IERC20Lockable",
- "name": "_game",
- "type": "address"
- },
- {
- "internalType": "contract ITheoretics",
- "name": "_theoretics",
- "type": "address"
- },
- {
- "internalType": "contract ITreasury",
- "name": "_treasury",
- "type": "address"
- },
- {
- "internalType": "address[]",
- "name": "_whitelist",
- "type": "address[]"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountInTheory",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountOutMaster",
- "type": "uint256"
- }
- ],
- "name": "Deposit",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "LockGame",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "reward",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "lockAmount",
- "type": "uint256"
- }
- ],
- "name": "RewardPaid",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- }
- ],
- "name": "Snapshot",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "UnlockGame",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountInMaster",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountOutTheory",
- "type": "uint256"
- }
- ],
- "name": "Withdraw",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountInMaster",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountOutTheory",
- "type": "uint256"
- }
- ],
- "name": "WithdrawRequest",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toAdd",
- "type": "address"
- }
- ],
- "name": "addAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- }
- ],
- "name": "approveTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "authorized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "snapshotId",
- "type": "uint256"
- }
- ],
- "name": "balanceOfAt",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amountInTheory",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lockTime",
- "type": "uint256"
- }
- ],
- "name": "buyFromTheory",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "canUnlockAmountGame",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "claimGame",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "theorist",
- "type": "address"
- }
- ],
- "name": "earned",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "theorist",
- "type": "address"
- }
- ],
- "name": "getLastSnapshotIndexOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "allowEmergency",
- "type": "bool"
- }
- ],
- "name": "initiatePart1",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "initiatePart2",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "latestSnapshotIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "lockOfGame",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "masterHistory",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "time",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardReceived",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardPerShare",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_share",
- "type": "uint256"
- }
- ],
- "name": "masterToTheory",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "minLockTime",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_toRemove",
- "type": "address"
- }
- ],
- "name": "removeAuthorized",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amountInMaster",
- "type": "uint256"
- },
- {
- "internalType": "bool",
- "name": "allowEmergency",
- "type": "bool"
- }
- ],
- "name": "requestSellToTheory",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "sellToTheory",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "lockTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "penalty",
- "type": "uint256"
- },
- {
- "internalType": "bool",
- "name": "emergency",
- "type": "bool"
- }
- ],
- "name": "setAdmin",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "stakeExternalTheory",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_amount",
- "type": "uint256"
- }
- ],
- "name": "theoryToMaster",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "totalBalanceOfGame",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_holder",
- "type": "address"
- }
- ],
- "name": "totalCanUnlockAmountGame",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalGameLocked",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalGameUnclaimed",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalLockGame",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalStakeRequestedInTheory",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "snapshotId",
- "type": "uint256"
- }
- ],
- "name": "totalSupplyAt",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalWithdrawRequestedInMaster",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalWithdrawRequestedInTheory",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalWithdrawUnclaimedInTheory",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "contract IERC20",
- "name": "_token",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferToken",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unlockGame",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "unlockGameForUser",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "unlockedClaimPenalty",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "userInfo",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "lockToTime",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "chosenLockTime",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "approveTransferFrom",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "lastSnapshotIndex",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "rewardEarned",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "withdrawRequestedInMaster",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "withdrawRequestedInTheory",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastStakeRequestBlock",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "lastWithdrawRequestBlock",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "gameLocked",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "gameLockFrom",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "gameLastUnlockTime",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
- ]
- }
-}
+ "Oracle": {
+ "address": "0x5D5579A0A2d695Ab92CCD7D2d184f02d1474aAa9",
+ "abi": [{
+ "inputs": [{
+ "internalType": "contract IUniswapV2Pair",
+ "name": "_pair",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_period",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_startTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "price0CumulativeLast",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "price1CumulativeLast",
+ "type": "uint256"
+ }
+ ],
+ "name": "Updated",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "blockTimestampLast",
+ "outputs": [{
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amountIn",
+ "type": "uint256"
+ }
+ ],
+ "name": "consult",
+ "outputs": [{
+ "internalType": "uint144",
+ "name": "amountOut",
+ "type": "uint144"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getCurrentEpoch",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getLastEpochTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPeriod",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStartTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextEpochPoint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pair",
+ "outputs": [{
+ "internalType": "contract IUniswapV2Pair",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "price0Average",
+ "outputs": [{
+ "internalType": "uint224",
+ "name": "_x",
+ "type": "uint224"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "price0CumulativeLast",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "price1Average",
+ "outputs": [{
+ "internalType": "uint224",
+ "name": "_x",
+ "type": "uint224"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "price1CumulativeLast",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_epoch",
+ "type": "uint256"
+ }],
+ "name": "setEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_period",
+ "type": "uint256"
+ }],
+ "name": "setPeriod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token0",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token1",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amountIn",
+ "type": "uint256"
+ }
+ ],
+ "name": "twap",
+ "outputs": [{
+ "internalType": "uint144",
+ "name": "_amountOut",
+ "type": "uint144"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "update",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ },
+ "game": {
+ "address": "0x9b343B2fF740E7d4935a4C26c8f94DaD73b5f2ad",
+ "abi": [{
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Lock",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Unlock",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "canUnlockAmount",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "circulatingSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [{
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_genesisPool",
+ "type": "address"
+ }],
+ "name": "distributeReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "governanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "lastUnlockTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "lock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "lockFromTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_newLockFrom",
+ "type": "uint256"
+ }
+ ],
+ "name": "lockFromUpdate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "lockOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockedSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "recipient_",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount_",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "noUnlockBeforeTransfer",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "rewardPoolDistributed",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_lockTime",
+ "type": "uint256"
+ }],
+ "name": "setLockTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bool",
+ "name": "_noUnlockBeforeTransfer",
+ "type": "bool"
+ }],
+ "name": "setNoUnlockBeforeTransfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "totalBalanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalLock",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unlock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "unlockForUser",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unlockedSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ },
+ "theory": {
+ "address": "0x330e5d339C84524B99a02Df30c086b01fcE41614",
+ "abi": [{
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_startTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_communityFund",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_devFund",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_lockFromTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_lockToTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Lock",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Unlock",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "COMMUNITY_FUND_POOL_ALLOCATION",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEV_FUND_POOL_ALLOCATION",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "VESTING_DURATION",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "canUnlockAmount",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "claimRewards",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "communityFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "communityFundLastClaimed",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "communityFundRewardRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [{
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "devFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "devFundLastClaimed",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "devFundRewardRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_farmingIncentiveFund",
+ "type": "address"
+ }],
+ "name": "distributeReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "endTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "governanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "lastUnlockTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "lock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockFromTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "lockOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockToTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "noUnlockBeforeTransfer",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "rewardPoolDistributed",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_devFund",
+ "type": "address"
+ }],
+ "name": "setDevFund",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bool",
+ "name": "_noUnlockBeforeTransfer",
+ "type": "bool"
+ }],
+ "name": "setNoUnlockBeforeTransfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_communityFund",
+ "type": "address"
+ }],
+ "name": "setTreasuryFund",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "startTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "totalBalanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }],
+ "name": "transferAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unclaimedDevFund",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_pending",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unclaimedTreasuryFund",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_pending",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unlock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "unlockForUser",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ },
+ "hodl": {
+ "address": "0x3d8A41215098207fEc2988fA79faA7Fd35A434F2",
+ "abi": [{
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [{
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "recipient_",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount_",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ },
+ "Treasury": {
+ "address": "0x55c6B3105ace3752e2414930D8767Df50Fb2f513",
+ "abi": [{
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "gameAmount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "bondAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "BoughtBonds",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "bondAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "BurnedBonds",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "timestamp",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "seigniorage",
+ "type": "uint256"
+ }
+ ],
+ "name": "DaoFundFunded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "timestamp",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "seigniorage",
+ "type": "uint256"
+ }
+ ],
+ "name": "DevFundFunded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "executor",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "at",
+ "type": "uint256"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "gameAmount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "bondAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "RedeemedBonds",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "timestamp",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "seigniorage",
+ "type": "uint256"
+ }
+ ],
+ "name": "TreasuryFunded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "timestamp",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "seigniorage",
+ "type": "uint256"
+ }
+ ],
+ "name": "theoreticsFunded",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "PERIOD",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allocateSeigniorage",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "bondDepletionFloorPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "bondSupplyExpansionPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "bondTreasury",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "bootstrapEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "bootstrapSupplyExpansionPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_gameAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "targetPrice",
+ "type": "uint256"
+ }
+ ],
+ "name": "buyBonds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "daoFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "daoFundSharedPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "devFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "devFundSharedPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "discountPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epochSupplyContractionLeft",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "excludedFromTotalSupply",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "game",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "gameOracle",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "gamePriceCeiling",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "gamePriceOne",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getBondDiscountRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_rate",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getBondPremiumRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_rate",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getBurnableGameLeft",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_burnableGameLeft",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getGameCirculatingSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getGamePrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "gamePrice",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getGameUpdatedPrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_gamePrice",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRedeemableBonds",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "_redeemableBonds",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReserve",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "governanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hodl",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_game",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_hodl",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_theory",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_gameOracle",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_theoretics",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_genesisPool",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_startTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isInitialized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxDebtRatioPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxDiscountRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "maxExpansionTiers",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxPremiumRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxSupplyContractionPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxSupplyExpansionPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintingFactorForPayingDebt",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextEpochPoint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "premiumPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "premiumThreshold",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "previousEpochGamePrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_bondAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "targetPrice",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemBonds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "seigniorageExpansionFloorPercent",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "seigniorageSaved",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_bondDepletionFloorPercent",
+ "type": "uint256"
+ }],
+ "name": "setBondDepletionFloorPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_bondSupplyExpansionPercent",
+ "type": "uint256"
+ }],
+ "name": "setBondSupplyExpansionPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_bootstrapEpochs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_bootstrapSupplyExpansionPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setBootstrap",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_discountPercent",
+ "type": "uint256"
+ }],
+ "name": "setDiscountPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_daoFund",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_daoFundSharedPercent",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_devFund",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_devFundSharedPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setExtraFunds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_gameOracle",
+ "type": "address"
+ }],
+ "name": "setGameOracle",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_gamePriceCeiling",
+ "type": "uint256"
+ }],
+ "name": "setGamePriceCeiling",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_maxDebtRatioPercent",
+ "type": "uint256"
+ }],
+ "name": "setMaxDebtRatioPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_maxDiscountRate",
+ "type": "uint256"
+ }],
+ "name": "setMaxDiscountRate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint8",
+ "name": "_index",
+ "type": "uint8"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpansionTiersEntry",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_maxPremiumRate",
+ "type": "uint256"
+ }],
+ "name": "setMaxPremiumRate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_maxSupplyContractionPercent",
+ "type": "uint256"
+ }],
+ "name": "setMaxSupplyContractionPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_maxSupplyExpansionPercent",
+ "type": "uint256"
+ }],
+ "name": "setMaxSupplyExpansionPercents",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_mintingFactorForPayingDebt",
+ "type": "uint256"
+ }],
+ "name": "setMintingFactorForPayingDebt",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_operator",
+ "type": "address"
+ }],
+ "name": "setOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_premiumPercent",
+ "type": "uint256"
+ }],
+ "name": "setPremiumPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_premiumThreshold",
+ "type": "uint256"
+ }],
+ "name": "setPremiumThreshold",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setStartTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint8",
+ "name": "_index",
+ "type": "uint8"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "setSupplyTiersEntry",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_theoretics",
+ "type": "address"
+ }],
+ "name": "setTheoretics",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "startTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "supplyTiers",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theoretics",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "theoreticsAllocateSeigniorage",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theoreticsGetCurrentClaimEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theoreticsGetCurrentWithdrawEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theoreticsGetLockPercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }],
+ "name": "theoreticsGetWithdrawFeeOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "theoreticsGovernanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_withdrawLockupEpochs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_rewardLockupEpochs",
+ "type": "uint256"
+ }
+ ],
+ "name": "theoreticsSetLockUp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_operator",
+ "type": "address"
+ }],
+ "name": "theoreticsSetOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theory",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ },
+ "Theoretics": {
+ "address": "0x8b1455618B07Fa4Ef1f67F9f85b8a7CE6588b513",
+ "abi": [{
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "executor",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "at",
+ "type": "uint256"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "lockAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "allocateSeigniorage",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "theorist",
+ "type": "address"
+ }],
+ "name": "canClaimReward",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "theorist",
+ "type": "address"
+ }],
+ "name": "canWithdraw",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "claimReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "theorist",
+ "type": "address"
+ }],
+ "name": "earned",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "farm",
+ "outputs": [{
+ "internalType": "contract IFarm",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "feeStagePercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "feeStageTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "game",
+ "outputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getCurrentClaimEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getCurrentWithdrawEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getGamePrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "theorist",
+ "type": "address"
+ }],
+ "name": "getLastSnapshotIndexOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getLockPercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }],
+ "name": "getWithdrawFeeOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "governanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "_game",
+ "type": "address"
+ },
+ {
+ "internalType": "contract IERC20Lockable",
+ "name": "_share",
+ "type": "address"
+ },
+ {
+ "internalType": "contract ITreasury",
+ "name": "_treasury",
+ "type": "address"
+ },
+ {
+ "internalType": "contract IFarm",
+ "name": "_farm",
+ "type": "address"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "latestSnapshotIndex",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextEpochPoint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pegMaxUnlock",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }
+ ],
+ "name": "reviseDeposit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }
+ ],
+ "name": "reviseWithdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "rewardLockupEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "rewardPerShare",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "sameBlockFee",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_feeStageTime",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_feeStagePercentage",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "setFeeStages",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_withdrawLockupEpochs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_rewardLockupEpochs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_pegMaxUnlock",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLockUp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_fee",
+ "type": "uint256"
+ }],
+ "name": "setSameBlockFee",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "share",
+ "outputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "theoreticsHistory",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardReceived",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardPerShare",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "theorists",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "lastSnapshotIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardEarned",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochTimerStart",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastDepositBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastWithdrawTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "firstDepositTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasury",
+ "outputs": [{
+ "internalType": "contract ITreasury",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdrawLockupEpochs",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ },
+ "GameGenesisRewardPool": {
+ "address": "0x5713201Bbd87bBbECd690D76903BdBbaCc4EC77C",
+ "abi": [{
+ "inputs": [{
+ "internalType": "address",
+ "name": "_game",
+ "type": "address"
+ },
+ {
+ "internalType": "contract ITreasury",
+ "name": "_treasury",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_poolStartTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "pid",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Deposit",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "pid",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "EmergencyWithdraw",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "pid",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdraw",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_allocPoint",
+ "type": "uint256"
+ },
+ {
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "_withUpdate",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_lastRewardTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "add",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "deposit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "depositFee",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ }],
+ "name": "emergencyWithdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "forceMassUpdatePools",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ }],
+ "name": "forceUpdatePool",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "game",
+ "outputs": [{
+ "internalType": "contract IERC20",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "gamePerSecond",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ }],
+ "name": "getGamePerSecondInPool",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_fromTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_toTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "getGeneratedReward",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRequiredAllocation",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "governanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }
+ ],
+ "name": "pendingGAME",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "poolEndTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "poolInfo",
+ "outputs": [{
+ "internalType": "contract IERC20",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allocPoint",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastRewardTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "accGamePerShare",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "isStarted",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "poolStartTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "runningTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_allocPoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "set",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_depositFee",
+ "type": "uint256"
+ }],
+ "name": "setDepositFee",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setPoolEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setPoolStartTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalAllocPoint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasury",
+ "outputs": [{
+ "internalType": "contract ITreasury",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "userInfo",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardDebt",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ },
+ "TheoryRewardPool": {
+ "address": "0x085DAD9Ac4E8EF88Ff2B12218401dE015A36eB0d",
+ "abi": [{
+ "inputs": [{
+ "internalType": "address",
+ "name": "_theory",
+ "type": "address"
+ },
+ {
+ "internalType": "contract ITreasury",
+ "name": "_treasury",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_poolStartTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_halvingAfterTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_rewardMultiplier",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_percentLockBonusRewards",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "pid",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Deposit",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "pid",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "EmergencyWithdraw",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOperator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOperator",
+ "type": "address"
+ }
+ ],
+ "name": "OperatorTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "lockAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "pid",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdraw",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "FINISH_BONUS_AT_TIME",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "HALVING_AT_TIME",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "PERCENT_LOCK_BONUS_REWARD",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "REWARD_MULTIPLIER",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_allocPoint",
+ "type": "uint256"
+ },
+ {
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "_withUpdate",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_lastRewardTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "add",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "baseTheoryPerSecond",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_newFinish",
+ "type": "uint256"
+ }],
+ "name": "bonusFinishUpdate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "deposit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ }],
+ "name": "emergencyWithdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "feeStagePercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "feeStageTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "forceMassUpdatePools",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ }],
+ "name": "forceUpdatePool",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }
+ ],
+ "name": "getCurrentLockPercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_fromTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_toTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "getGeneratedReward",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_from",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_to",
+ "type": "uint256"
+ }
+ ],
+ "name": "getLockPercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_from",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_to",
+ "type": "uint256"
+ }
+ ],
+ "name": "getMultiplier",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRequiredAllocation",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ }],
+ "name": "getTheoryPerSecondInPool",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }
+ ],
+ "name": "getWithdrawFeeOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "governanceRecoverUnsupported",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_newHalving",
+ "type": "uint256[]"
+ }],
+ "name": "halvingUpdate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isOperator",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_newLock",
+ "type": "uint256[]"
+ }],
+ "name": "lockUpdate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "operator",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }
+ ],
+ "name": "pendingShare",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "poolEndTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "poolInfo",
+ "outputs": [{
+ "internalType": "contract IERC20",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allocPoint",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastRewardTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "accTheoryPerShare",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "isStarted",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "poolStartTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }
+ ],
+ "name": "reviseDeposit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }
+ ],
+ "name": "reviseWithdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_newMulReward",
+ "type": "uint256[]"
+ }],
+ "name": "rewardMulUpdate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "runningTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "sameBlockFee",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_allocPoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "set",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_feeStageTime",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_feeStagePercentage",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "setFeeStages",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setPoolEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setPoolStartTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_fee",
+ "type": "uint256"
+ }],
+ "name": "setSameBlockFee",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theory",
+ "outputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalAllocPoint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOperator_",
+ "type": "address"
+ }],
+ "name": "transferOperator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasury",
+ "outputs": [{
+ "internalType": "contract ITreasury",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "userInfo",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardDebt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardDebtAtTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastDepositBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastWithdrawTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "firstDepositTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_pid",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ },
+ "zapper": {
+ "address": "0x2656DaB561f7c4dd0cecb87D94eE2094282B60a9",
+ "abi": [{
+ "inputs": [{
+ "internalType": "address",
+ "name": "_WNATIVE",
+ "type": "address"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "address",
+ "name": "fee_to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "rate",
+ "type": "uint16"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "min",
+ "type": "uint16"
+ }
+ ],
+ "name": "FeeChange",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_LP",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_router",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amt",
+ "type": "uint256"
+ }
+ ],
+ "name": "estimateZapIn",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_router",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amt",
+ "type": "uint256"
+ }
+ ],
+ "name": "estimateZapInToken",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "addr",
+ "type": "address"
+ },
+ {
+ "internalType": "uint16",
+ "name": "rate",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "min",
+ "type": "uint16"
+ }
+ ],
+ "name": "setFee",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "router",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "bridgeToken",
+ "type": "address"
+ }
+ ],
+ "name": "setTokenBridgeForRouter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "router",
+ "type": "address"
+ }],
+ "name": "setUseNativeRouter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "routerAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "swapToNative",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "routerAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "swapToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "useNativeRouter",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ }],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_toRouter",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "zapAcross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "routerAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "zapIn",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "routerAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "zapInToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "routerAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "zapOut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "routerAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ }
+ ],
+ "name": "zapOutToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "stateMutability": "payable",
+ "type": "receive"
+ }
+ ]
+ },
+ "SpookyRouter": {
+ "address": "0xa6AD18C2aC47803E193F75c3677b14BF19B94883",
+ "abi": [{
+ "inputs": [{
+ "internalType": "address",
+ "name": "_factory",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_WETH",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "WETH",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountADesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountBDesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountAMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountBMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "addLiquidity",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountTokenDesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountTokenMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETHMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "addLiquidityETH",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountToken",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETH",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOut",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reserveIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reserveOut",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAmountIn",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ }],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reserveIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reserveOut",
+ "type": "uint256"
+ }
+ ],
+ "name": "getAmountOut",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountOut",
+ "type": "uint256"
+ }],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOut",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "getAmountsIn",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "getAmountsOut",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reserveA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reserveB",
+ "type": "uint256"
+ }
+ ],
+ "name": "quote",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountAMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountBMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeLiquidity",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountTokenMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETHMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeLiquidityETH",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountToken",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETH",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountTokenMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETHMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeLiquidityETHSupportingFeeOnTransferTokens",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountETH",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountTokenMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETHMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "approveMax",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "removeLiquidityETHWithPermit",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountToken",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETH",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountTokenMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountETHMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "approveMax",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountETH",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountAMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountBMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "approveMax",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "removeLiquidityWithPermit",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOut",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapETHForExactTokens",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapExactETHForTokens",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapExactTokensForETH",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapExactTokensForTokens",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOut",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountInMax",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapTokensForExactETH",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountOut",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountInMax",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "swapTokensForExactTokens",
+ "outputs": [{
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "stateMutability": "payable",
+ "type": "receive"
+ }
+ ]
+ },
+ "TheoryUnlocker": {
+ "address": "0x24559C54724704F1B909eA668DD7C72df0B9BCcc",
+ "abi": [{
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_buy",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_initialBuy",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_buyPerLevel",
+ "type": "uint256"
+ },
+ {
+ "internalType": "contract IERC20Lockable",
+ "name": "_theory",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_communityFund",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_maxLevelTime",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_maxLevelLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_levelURIsLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "_levelURIsURI",
+ "type": "string[]"
+ }
+ ],
+ "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": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "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": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "baseURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "buyToken",
+ "outputs": [{
+ "internalType": "contract IERC20",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "buyTokenPerLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "player",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "canUnlockAmount",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "communityFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "costOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "disableMint",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "getApproved",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialPrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "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": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "levelURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "levelUp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "maxLevelLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "maxLevelTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId1",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId2",
+ "type": "uint256"
+ }
+ ],
+ "name": "merge",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "mint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "nextLevelTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "nftUnlock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "ownerOf",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "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": "contract IERC20",
+ "name": "_buy",
+ "type": "address"
+ }],
+ "name": "setBuyToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_perLevel",
+ "type": "uint256"
+ }],
+ "name": "setBuyTokenPerLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_fund",
+ "type": "address"
+ }],
+ "name": "setCommunityFund",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ }
+ ],
+ "name": "setCreationTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bool",
+ "name": "_disable",
+ "type": "bool"
+ }],
+ "name": "setDisableMint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_initial",
+ "type": "uint256"
+ }],
+ "name": "setInitialPrice",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLastLevelTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLastLockAmount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLastUnlockTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_levelURIsLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "_levelURIsURI",
+ "type": "string[]"
+ }
+ ],
+ "name": "setLevelURIs",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_maxLevelTime",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_maxLevelLevel",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "setMaxLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setTimeToLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }
+ ],
+ "name": "setTokenLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }],
+ "name": "supportsInterface",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theory",
+ "outputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "timeLeftToLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "timeToLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }],
+ "name": "tokenByIndex",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "tokenInfo",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "creationTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastLevelTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "tokenURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "userInfo",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "lastUnlockTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastLockAmount",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ },
+ "TheoryUnlockerGen1": {
+ "address": "0x50bB33375af32EAf42af72c6004bAAd931042632",
+ "abi": [{
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_buy",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "_prices",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "contract IERC20Lockable[2]",
+ "name": "_theoryAndGame",
+ "type": "address[2]"
+ },
+ {
+ "internalType": "address",
+ "name": "_communityFund",
+ "type": "address"
+ },
+ {
+ "internalType": "contract ITheoryUnlocker",
+ "name": "_gen0",
+ "type": "address"
+ },
+ {
+ "internalType": "contract IUniswapV2Router",
+ "name": "_router",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_maxLevelTime",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_maxLevelLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_levelURIsLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "_levelURIsURI",
+ "type": "string[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_levelURIsMax",
+ "type": "uint256[]"
+ }
+ ],
+ "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": false,
+ "internalType": "address",
+ "name": "who",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "leveledTo",
+ "type": "uint256"
+ }
+ ],
+ "name": "Level",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "address",
+ "name": "who",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "tokenId1",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "tokenId2",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "level1",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "level2",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "levelMerged",
+ "type": "uint256"
+ }
+ ],
+ "name": "Merge",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "address",
+ "name": "who",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }
+ ],
+ "name": "Mint",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "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"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "address",
+ "name": "who",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountToUnlock",
+ "type": "uint256"
+ }
+ ],
+ "name": "Unlock",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "TheoryUnlockerGen0",
+ "outputs": [{
+ "internalType": "contract ITheoryUnlocker",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "baseURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "burnPercentage",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "buyToken",
+ "outputs": [{
+ "internalType": "contract IERC20",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "buyTokenPerLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "player",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "canUnlockAmount",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "communityFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "costOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "disableMint",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "emergencyDisableUnlock",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "extraGameCost",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "extraGameCostAmount",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "extraGameCostLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "game",
+ "outputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "gameCostPerLevel",
+ "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": [],
+ "name": "initialPrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "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": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "levelURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsMax",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsMinted",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "levelURIsURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "levelUp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "theLevel",
+ "type": "uint256"
+ }
+ ],
+ "name": "levelUpTo",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "levelUpToMax",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "maxLevelLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "maxLevelTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "maxMinted",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId1",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId2",
+ "type": "uint256"
+ }
+ ],
+ "name": "merge",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "slippage",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "minted",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "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": "nextLevelTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "nftUnlock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "ownerOf",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "router",
+ "outputs": [{
+ "internalType": "contract IUniswapV2Router",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "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": "uint256",
+ "name": "_burn",
+ "type": "uint256"
+ }],
+ "name": "setBurnPercentage",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_buy",
+ "type": "address"
+ }],
+ "name": "setBuyToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_fund",
+ "type": "address"
+ }],
+ "name": "setCommunityFund",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ }
+ ],
+ "name": "setCreationTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bool",
+ "name": "_disable",
+ "type": "bool"
+ }],
+ "name": "setDisableMint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bool",
+ "name": "_disable",
+ "type": "bool"
+ }],
+ "name": "setEmergencyDisableUnlock",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_gameCostPerLevel",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_extraGameCostLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_extraGameCostAmount",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "setGameCostForLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLastLevelTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLastLockAmount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ }
+ ],
+ "name": "setLastUnlockTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_levelURIsLevel",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "_levelURIsURI",
+ "type": "string[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_levelURIsMax",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_levelURIsSupply",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_levelURIsMinted",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "setLevelURIs",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256[]",
+ "name": "_maxLevelTime",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "_maxLevelLevel",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "setMaxLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_initial",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_perLevel",
+ "type": "uint256"
+ }
+ ],
+ "name": "setPrices",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IUniswapV2Router",
+ "name": "_router",
+ "type": "address"
+ }],
+ "name": "setRouter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_time",
+ "type": "uint256"
+ }],
+ "name": "setTimeToLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }
+ ],
+ "name": "setTokenLevel",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ }],
+ "name": "supply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }],
+ "name": "supportsInterface",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "theory",
+ "outputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "timeLeftToLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "timeToLevel",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }],
+ "name": "tokenByIndex",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "tokenInfo",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "level",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "creationTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastLevelTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "merged",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "tokenURI",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ },
+ "Master": {
+ "address": "0x6860af20ED7362c67d80A21E447d65861Fe83086",
+ "abi": [{
+ "inputs": [{
+ "internalType": "contract IERC20Lockable",
+ "name": "_theory",
+ "type": "address"
+ },
+ {
+ "internalType": "contract IERC20Lockable",
+ "name": "_game",
+ "type": "address"
+ },
+ {
+ "internalType": "contract ITheoretics",
+ "name": "_theoretics",
+ "type": "address"
+ },
+ {
+ "internalType": "contract ITreasury",
+ "name": "_treasury",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "_whitelist",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountInTheory",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountOutMaster",
+ "type": "uint256"
+ }
+ ],
+ "name": "Deposit",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "LockGame",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "lockAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ }],
+ "name": "Snapshot",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "UnlockGame",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountInMaster",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountOutTheory",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdraw",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountInMaster",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountOutTheory",
+ "type": "uint256"
+ }
+ ],
+ "name": "WithdrawRequest",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ }],
+ "name": "approveTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }],
+ "name": "balanceOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "snapshotId",
+ "type": "uint256"
+ }
+ ],
+ "name": "balanceOfAt",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountInTheory",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lockTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "buyFromTheory",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "canUnlockAmountGame",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "claimGame",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [{
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "theorist",
+ "type": "address"
+ }],
+ "name": "earned",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "theorist",
+ "type": "address"
+ }],
+ "name": "getLastSnapshotIndexOf",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "bool",
+ "name": "allowEmergency",
+ "type": "bool"
+ }],
+ "name": "initiatePart1",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initiatePart2",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "latestSnapshotIndex",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "lockOfGame",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "name": "masterHistory",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "time",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardReceived",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardPerShare",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_share",
+ "type": "uint256"
+ }],
+ "name": "masterToTheory",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minLockTime",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amountInMaster",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "allowEmergency",
+ "type": "bool"
+ }
+ ],
+ "name": "requestSellToTheory",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "sellToTheory",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "lockTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "penalty",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "emergency",
+ "type": "bool"
+ }
+ ],
+ "name": "setAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }],
+ "name": "stakeExternalTheory",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }],
+ "name": "theoryToMaster",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "totalBalanceOfGame",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_holder",
+ "type": "address"
+ }],
+ "name": "totalCanUnlockAmountGame",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalGameLocked",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalGameUnclaimed",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalLockGame",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStakeRequestedInTheory",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "snapshotId",
+ "type": "uint256"
+ }],
+ "name": "totalSupplyAt",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalWithdrawRequestedInMaster",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalWithdrawRequestedInTheory",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalWithdrawUnclaimedInTheory",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_token",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unlockGame",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "unlockGameForUser",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unlockedClaimPenalty",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "userInfo",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "lockToTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chosenLockTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "approveTransferFrom",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastSnapshotIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rewardEarned",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "withdrawRequestedInMaster",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "withdrawRequestedInTheory",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastStakeRequestBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastWithdrawRequestBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "gameLocked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "gameLockFrom",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "gameLastUnlockTime",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ },
+ "Marketplace": {
+ "address": "0x0a6C2021960FF21BFCAB56977e8151Fcb6fF023C",
+ "abi": [{
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_buy",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_communityFund",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "nftContract",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "sold",
+ "type": "bool"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "canceled",
+ "type": "bool"
+ }
+ ],
+ "name": "MarketItemCreated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [{
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toAdd",
+ "type": "address"
+ }],
+ "name": "addAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "name": "authorized",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "buyToken",
+ "outputs": [{
+ "internalType": "contract IERC20",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ }
+ ],
+ "name": "cancelMarketItem",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "communityFund",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ }
+ ],
+ "name": "createMarketItem",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ }
+ ],
+ "name": "createMarketSale",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fetchAvailableMarketItems",
+ "outputs": [{
+ "components": [{
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "sold",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "canceled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct Marketplace.MarketItem[]",
+ "name": "",
+ "type": "tuple[]"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "string",
+ "name": "_addressProperty",
+ "type": "string"
+ }],
+ "name": "fetchMarketItemsByAddressProperty",
+ "outputs": [{
+ "components": [{
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "sold",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "canceled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct Marketplace.MarketItem[]",
+ "name": "",
+ "type": "tuple[]"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fetchOwnedMarketItems",
+ "outputs": [{
+ "components": [{
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "sold",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "canceled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct Marketplace.MarketItem[]",
+ "name": "",
+ "type": "tuple[]"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fetchSellingMarketItems",
+ "outputs": [{
+ "components": [{
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "sold",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "canceled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct Marketplace.MarketItem[]",
+ "name": "",
+ "type": "tuple[]"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getFeeRate",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }],
+ "name": "getLatestMarketItemByTokenId",
+ "outputs": [{
+ "components": [{
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "nftContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "genNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "price",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "sold",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "canceled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct Marketplace.MarketItem",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "marketItemId",
+ "type": "uint256"
+ }],
+ "name": "getPrice",
+ "outputs": [{
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mutex",
+ "outputs": [{
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_toRemove",
+ "type": "address"
+ }],
+ "name": "removeAuthorized",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "contract IERC20",
+ "name": "_buy",
+ "type": "address"
+ }],
+ "name": "setBuyToken",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "_newCommunityFund",
+ "type": "address"
+ }],
+ "name": "setCommunityFund",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "uint256",
+ "name": "_newFeeRate",
+ "type": "uint256"
+ }],
+ "name": "setFeeRate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{
+ "internalType": "address",
+ "name": "tokenAddress",
+ "type": "address"
+ }],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/views/Nft/Nft.js b/src/views/Nft/Nft.js
index db22f02..bb4a284 100644
--- a/src/views/Nft/Nft.js
+++ b/src/views/Nft/Nft.js
@@ -1055,7 +1055,7 @@ LTHEORY Unlockers available to Mint
What are the benefits of Game Theory NFTs?
-
+
Game Theory NFTs can be used in the following ways:
-
diff --git a/src/views/NftMarketplace/NftMarketplace.js b/src/views/NftMarketplace/NftMarketplace.js
new file mode 100644
index 0000000..56a7d67
--- /dev/null
+++ b/src/views/NftMarketplace/NftMarketplace.js
@@ -0,0 +1,108 @@
+import React, { useState } from 'react';
+import { useWallet } from 'use-wallet';
+import styled from 'styled-components';
+import { makeStyles } from '@mui/styles';
+import { Box, Typography, Grid, Container } from '@mui/material';
+import UnlockWallet from '../../components/UnlockWallet';
+import Page from '../../components/Page';
+import Markets from './components/markets';
+import MyNFTs from './components/myNfts';
+import { createGlobalStyle } from 'styled-components';
+import Web3Provider from './utils/Web3Provider';
+import { CacheProvider } from '@emotion/react';
+import createEmotionCache from './utils/createEmotionCache';
+
+// Client-side cache, shared for the whole session of the user in the browser.
+const clientSideEmotionCache = createEmotionCache()
+
+const NftMarketplace = (props) => {
+ const { emotionCache = clientSideEmotionCache } = props
+ const classes = useStyles();
+ const { account } = useWallet();
+ const [activeTab, setActiveTab] = useState("tab1");
+
+ const handleTab1 = () =>{
+ setActiveTab("tab1");
+ };
+ const handleTab2 = () => {
+ setActiveTab("tab2");
+ };
+
+ return (
+
+
+
+
+ {!!account ? (
+ <>
+
+ NFT Marketplace
+
+
+
+
+ Market Place
+ My NFTs
+
+
+ {activeTab ==="tab1" ? : }
+
+
+
+ >
+ ) : (
+
+ )}
+
+
+
+ );
+};
+
+
+
+const BackgroundImage = createGlobalStyle`
+ body {
+ background-color: var(--black);
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='32' viewBox='0 0 16 32'%3E%3Cg fill='%231D1E1F' fill-opacity='0.4'%3E%3Cpath fill-rule='evenodd' d='M0 24h4v2H0v-2zm0 4h6v2H0v-2zm0-8h2v2H0v-2zM0 0h4v2H0V0zm0 4h2v2H0V4zm16 20h-6v2h6v-2zm0 4H8v2h8v-2zm0-8h-4v2h4v-2zm0-20h-6v2h6V0zm0 4h-4v2h4V4zm-2 12h2v2h-2v-2zm0-8h2v2h-2V8zM2 8h10v2H2V8zm0 8h10v2H2v-2zm-2-4h14v2H0v-2zm4-8h6v2H4V4zm0 16h6v2H4v-2zM6 0h2v2H6V0zm0 24h2v2H6v-2z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+
+ * {
+ color: var(--white) !important;
+ }
+`;
+
+const useStyles = makeStyles((theme) => ({
+
+ nftField: {
+ display: "flex",
+ justifyContent: "center"
+ },
+
+ toggleNav: {
+ display: "flex",
+ margin: '40px 16px',
+ boxShadow: '0px 2px 4px var(--extra-color-1)'
+ },
+
+ tabs: {
+ fontSize: 20,
+ width: '50%',
+ textAlign: 'center',
+ color: "#9a9797 !important",
+ padding: "16px 0 12px",
+ cursor: "pointer"
+ },
+
+ tabActive: {
+ fontSize: 20,
+ width: '50%',
+ textAlign: 'center',
+ color: "#FFF",
+ padding: "16px 0 12px",
+ backgroundColor: "#ff26de56",
+ cursor: "pointer"
+ }
+}));
+
+export default NftMarketplace;
diff --git a/src/views/NftMarketplace/components/card/CardAddresses.js b/src/views/NftMarketplace/components/card/CardAddresses.js
new file mode 100755
index 0000000..f9f352b
--- /dev/null
+++ b/src/views/NftMarketplace/components/card/CardAddresses.js
@@ -0,0 +1,28 @@
+import { Typography } from '@mui/material'
+import { ethers } from 'ethers'
+import { useContext } from 'react'
+import { shortenAddress } from '../../utils/format'
+import { Web3Context } from '../../utils/Web3Provider'
+
+function getAddressText(address, account) {
+ if (address === ethers.constants.AddressZero) return 'Marketplace';
+ if (address === account) return 'You';
+ return shortenAddress(address);
+}
+
+export default function CardAddresses({ nft }) {
+ const isAvailable = !nft.sold && !nft.canceled;
+ const { account } = useContext(Web3Context);
+ return (
+ <>
+
+ Owner: {getAddressText(nft.owner, account)}
+
+ {isAvailable &&
+
+ Seller: {getAddressText(nft.seller, account)}
+
+ }
+ >
+ );
+};
diff --git a/src/views/NftMarketplace/components/card/NFTPrice.js b/src/views/NftMarketplace/components/card/NFTPrice.js
new file mode 100755
index 0000000..9918373
--- /dev/null
+++ b/src/views/NftMarketplace/components/card/NFTPrice.js
@@ -0,0 +1,45 @@
+import { Typography } from '@mui/material'
+import Game from '../../../../assets/img/GAME.png'
+// import Image from 'material-ui-image'
+
+function getPriceText (nft) {
+ const { sold, canceled } = nft;
+ if (sold) {
+ return 'Sold for'
+ }
+
+ if (canceled) {
+ return 'Offered for'
+ }
+
+ return 'Price'
+}
+
+export default function NFTPrice ({ nft }) {
+ const priceText = getPriceText(nft);
+
+ return (
+
+
+
+ {priceText}
+
+
+
+
+
+ {' '}{nft.price}
+
+
+ );
+};
diff --git a/src/views/NftMarketplace/components/card/PriceTextField.js b/src/views/NftMarketplace/components/card/PriceTextField.js
new file mode 100755
index 0000000..cf7415e
--- /dev/null
+++ b/src/views/NftMarketplace/components/card/PriceTextField.js
@@ -0,0 +1,21 @@
+import { TextField } from '@mui/material'
+
+export default function PriceTextField ({ onChange, disabled, error }) {
+ return (
+
+ );
+};
diff --git a/src/views/NftMarketplace/components/card/SortTag.js b/src/views/NftMarketplace/components/card/SortTag.js
new file mode 100755
index 0000000..7764dfd
--- /dev/null
+++ b/src/views/NftMarketplace/components/card/SortTag.js
@@ -0,0 +1,65 @@
+import React from "react";
+import { Grid, Button, Typography } from "@mui/material";
+import { makeStyles } from '@mui/styles'
+
+export default function SortTag({ setSortBy, sortBy, direction, toggleDirection }) {
+ const classes = useStyles();
+ const tags = [
+ { key: "price", title: "Price" },
+ { key: "level", title: "Level" }
+ ];
+ const items = tags.map(({ key, title }) => {
+ const active = key === sortBy;
+ return (
+ {
+ if (active) {
+ toggleDirection();
+ }
+ setSortBy(key);
+ }}
+ >
+ {title} {active ? (direction === "asc" ? " (asc)" : " (dsc)") : null}
+
+ );
+ });
+ return (
+
+ Sort by:
+ {items}
+
+ );
+}
+
+function HeadToggle({ children, active, onClick }) {
+ return (
+
+ );
+}
+
+const useStyles = makeStyles((theme) => ({
+ sortField: {
+ width: 300,
+ alignItems: 'center',
+ display: 'flex',
+ marginRight: 22,
+ marginBottom: 25,
+ justifyContent: 'space-around',
+ position: 'absolute',
+ right: 0,
+ // float: 'right',
+ '& button': {
+ padding: '5px 25px'
+ },
+ '@media (max-width: 640px)': {
+ marginTop: 66
+ }
+ }
+}));
diff --git a/src/views/NftMarketplace/components/gen0/Gen0Card.js b/src/views/NftMarketplace/components/gen0/Gen0Card.js
new file mode 100755
index 0000000..074d171
--- /dev/null
+++ b/src/views/NftMarketplace/components/gen0/Gen0Card.js
@@ -0,0 +1,202 @@
+import { ethers } from 'ethers'
+import { useContext, useEffect, useState } from 'react'
+import { makeStyles } from '@mui/styles'
+import { Grid, Card, CardActions, CardContent, CardMedia, Button, Divider, Box, CircularProgress, Typography } from '@mui/material'
+import { Web3Context } from '../../utils/Web3Provider'
+import NFTPrice from '../card/NFTPrice'
+import CardAddresses from '../card/CardAddresses'
+import PriceTextField from '../card/PriceTextField'
+import ReactPlayer from 'react-player';
+import useApprove, { ApprovalState } from '../../../../hooks/useApprove'
+import useTombFinance from '../../../../hooks/useTombFinance'
+
+const APPROVE_AMOUNT = ethers.constants.MaxUint256;
+
+export default function Gen0Card({ nft, action, updateNFT }) {
+ const { account, TheoryUnlocker, marketplaceContract, GameContract, hasWeb3 } = useContext(Web3Context);
+ const [isHovered, setIsHovered] = useState(false);
+ const [isLoading, setIsLoading] = useState(false);
+ const [priceError, setPriceError] = useState(false);
+ const [newPrice, setPrice] = useState(0);
+ const classes = useStyles();
+
+ const tombFinance = useTombFinance();
+ const [approveStatus, approve] = useApprove(tombFinance?.TOMB, tombFinance?.contracts.Marketplace.address);
+
+ const actions = {
+ buy: {
+ text: 'buy',
+ method: buyNft
+ },
+ cancel: {
+ text: 'cancel',
+ method: cancelNft
+ },
+ approve: {
+ text: 'Approve for selling',
+ method: approveNft
+ },
+ sell: {
+ text: 'Sell',
+ method: sellNft
+ },
+ none: {
+ text: 'pending',
+ method: () => {}
+ }
+ };
+
+ async function buyNft (nft) {
+ const transaction = await marketplaceContract.createMarketSale(TheoryUnlocker.address, nft.marketItemId);
+ await transaction.wait();
+ updateNFT();
+ }
+
+ async function approveBuy () {
+ const transaction = await GameContract.approve(marketplaceContract.address, APPROVE_AMOUNT);
+ await transaction.wait();
+ // updateNFT();
+ }
+
+ async function cancelNft (nft) {
+ const transaction = await marketplaceContract.cancelMarketItem(TheoryUnlocker.address, nft.marketItemId);
+ await transaction.wait();
+ updateNFT();
+ }
+
+ async function approveNft(nft) {
+ const approveTx = await TheoryUnlocker.approve(marketplaceContract.address, nft.tokenId);
+ await approveTx.wait();
+ updateNFT();
+ return approveTx;
+ }
+
+ async function sellNft (nft) {
+ if (!newPrice) {
+ setPriceError(true);
+ return;
+ }
+ setPriceError(false)
+ const priceInWei = ethers.utils.parseUnits(newPrice, 'ether');
+ const transaction = await marketplaceContract.createMarketItem(TheoryUnlocker.address, nft.tokenId, 0, priceInWei);
+ await transaction.wait();
+ updateNFT();
+ return transaction;
+ }
+
+ async function onClick (nft) {
+ try {
+ setIsLoading(true);
+ await actions[action].method(nft);
+ } catch (error) {
+ console.log(error);
+ } finally {
+ setIsLoading(false);
+ }
+ }
+
+ return (
+ setIsHovered(true)}
+ onMouseLeave={() => setIsHovered(false)}
+ >
+
+
+
+
+
+ Generation
+ 0
+
+
+ Tier
+ {nft.attributes[0].value}
+
+
+ Level
+ {nft.level.toNumber()}
+
+
+
+
+
+ Token ID:{nft.tokenId.toNumber()}
+
+
+
+ {action === 'sell'
+ ?
setPrice(e.target.value)} />
+ :
+ }
+
+
+
+
+ {nft.owner === ethers.constants.AddressZero && approveStatus !== ApprovalState.APPROVED && nft.seller !== account ? (
+
+ ) : (
+
+ )}
+
+
+ );
+};
+
+const useStyles = makeStyles({
+ root: {
+ flexDirection: 'column',
+ display: 'flex',
+ margin: 15,
+ flexGrow: 1,
+ height: 'auto',
+
+ '& .video': {
+ '& > video': {
+ borderTopLeftRadius: 17,
+ borderTopRightRadius: 17
+ }
+ }
+ },
+ cardContent: {
+ padding: '9px 16px 16px',
+ display: 'flex',
+ flexDirection: 'column',
+ height: '100%'
+ },
+ firstDivider: {
+ margin: '10px 0',
+ borderColor: '#e4e2e226'
+ },
+ addressesAndPrice: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ addressesContainer: {
+ margin: 'auto',
+ width: '60%',
+ textAlign: 'left'
+ },
+ priceContainer: {
+ width: '40%',
+ margin: 'auto',
+ '& input': {
+ fontSize: '20px'
+ }
+ },
+ cardActions: {
+ padding: '10px 16px 16px'
+ },
+ btn: {
+ background: '#ff24df',
+ fontSize: 15
+ }
+})
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/gen0/Gen0CardList.js b/src/views/NftMarketplace/components/gen0/Gen0CardList.js
new file mode 100755
index 0000000..b9fafdc
--- /dev/null
+++ b/src/views/NftMarketplace/components/gen0/Gen0CardList.js
@@ -0,0 +1,101 @@
+import React, { useContext } from 'react'
+import { ethers } from 'ethers'
+import { Grid, Fade } from '@mui/material'
+import { makeStyles } from '@mui/styles'
+import Gen0Card from './Gen0Card'
+import { Web3Context } from '../../utils/Web3Provider'
+import { mapOwnedTokenIdsAsMarketItems } from '../../utils/nft'
+import Datasort from "react-data-sort";
+import SortTag from '../card/SortTag'
+
+export default function Gen0CardList({ nfts, setNfts }) {
+ const classes = useStyles();
+ const { account, marketplaceContract, TheoryUnlocker } = useContext(Web3Context);
+
+ async function updateNFT(index, tokenId) {
+ const updatedNFt = await mapOwnedTokenIdsAsMarketItems(marketplaceContract, TheoryUnlocker, account)(tokenId);
+ setNfts(prevNfts => {
+ const updatedNfts = [...prevNfts];
+ updatedNfts[index] = updatedNFt;
+ return updatedNfts;
+ });
+ }
+
+ function Gen0NFT({ nft, index }) {
+ if (nft.owner === account && !nft.hasMarketApproval) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ if (nft.owner === account && nft.hasMarketApproval) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ if (nft.seller === account && !nft.sold) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ if (nft.owner === ethers.constants.AddressZero) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ return
+ }
+
+ return (
+ {
+ return (
+
+
+
+ {data.map((nft, i) =>
+
+
+
+
+
+ )}
+
+
+ );
+ }}
+ />
+ );
+};
+
+const useStyles = makeStyles((theme) => ({
+ grid: {
+ spacing: 3,
+ alignItems: 'stretch',
+ marginTop: 60,
+ '@media (max-width: 640px)': {
+ marginTop: 120
+ }
+ },
+ gridItem: {
+ display: 'flex',
+ transition: 'all .3s',
+
+ '@media (min-width: 1000px)': {
+ maxWidth: '33.3% !important'
+ },
+ '@media (min-width: 641px) and (max-width: 999px)': {
+ maxWidth: '50% !important'
+ },
+ '@media (max-width: 640px)': {
+ maxWidth: '100% !important'
+ }
+ }
+}));
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/gen1/Gen1Card.js b/src/views/NftMarketplace/components/gen1/Gen1Card.js
new file mode 100755
index 0000000..17e2171
--- /dev/null
+++ b/src/views/NftMarketplace/components/gen1/Gen1Card.js
@@ -0,0 +1,208 @@
+import { ethers } from 'ethers'
+import { useContext, useEffect, useState } from 'react'
+import { makeStyles } from '@mui/styles'
+import { Grid, Card, CardActions, CardContent, CardMedia, Button, Divider, Box, CircularProgress, Typography } from '@mui/material'
+import { Web3Context } from '../../utils/Web3Provider'
+import NFTPrice from '../card/NFTPrice'
+import CardAddresses from '../card/CardAddresses'
+import PriceTextField from '../card/PriceTextField'
+import ReactPlayer from 'react-player'
+import useApprove, { ApprovalState } from '../../../../hooks/useApprove'
+import useTombFinance from '../../../../hooks/useTombFinance'
+
+const APPROVE_AMOUNT = ethers.constants.MaxUint256;
+
+export default function Gen1Card({ nft, action, updateNFT }) {
+ const { account, TheoryUnlockerGen1, marketplaceContract, GameContract, hasWeb3 } = useContext(Web3Context);
+ const [isHovered, setIsHovered] = useState(false);
+ const [isLoading, setIsLoading] = useState(false);
+ const [priceError, setPriceError] = useState(false);
+ const [newPrice, setPrice] = useState(0);
+ const classes = useStyles();
+
+ const tombFinance = useTombFinance();
+ const [approveStatus, approve] = useApprove(tombFinance?.TOMB, tombFinance?.contracts.Marketplace.address);
+
+ const actions = {
+ buy: {
+ text: 'buy',
+ method: buyNft
+ },
+ cancel: {
+ text: 'cancel',
+ method: cancelNft
+ },
+ approve: {
+ text: 'Approve for selling',
+ method: approveNft
+ },
+ sell: {
+ text: 'Sell',
+ method: sellNft
+ },
+ none: {
+ text: 'pending',
+ method: () => {}
+ }
+ };
+
+ async function buyNft (nft) {
+ // const price = ethers.utils.parseUnits(nft.price.toString(), 'ether');
+ // const getPrice = await marketplaceContract.getPrice(nft.marketItemId);
+ const transaction = await marketplaceContract.createMarketSale(TheoryUnlockerGen1.address, nft.marketItemId);
+ await transaction.wait();
+ updateNFT();
+ }
+
+ async function approveBuy () {
+ const transaction = await GameContract.approve(marketplaceContract.address, APPROVE_AMOUNT);
+ await transaction.wait();
+ // const allowanceTx = await GameContract.allowance(account, marketplaceContract.address);
+ // updateNFT();
+ }
+
+ async function cancelNft (nft) {
+ const transaction = await marketplaceContract.cancelMarketItem(TheoryUnlockerGen1.address, nft.marketItemId);
+ await transaction.wait();
+ updateNFT();
+ }
+
+ async function approveNft (nft) {
+ const approveTx = await TheoryUnlockerGen1.approve(marketplaceContract.address, nft.tokenId);
+ // const approveTx = await TheoryUnlockerGen1.setApprovalForAll(marketplaceContract.address, true);
+ await approveTx.wait();
+ updateNFT();
+ return approveTx;
+ }
+
+ async function sellNft (nft) {
+ if (!newPrice) {
+ setPriceError(true);
+ return;
+ }
+ setPriceError(false)
+ const priceInWei = ethers.utils.parseUnits(newPrice, 'ether');
+ // const approvalForSal = await TheoryUnlockerGen1.setApprovalForAll(marketplaceContract.address, true)
+ // await approvalForSal.wait()
+ const transaction = await marketplaceContract.createMarketItem(TheoryUnlockerGen1.address, nft.tokenId, 1, priceInWei);
+ await transaction.wait();
+ updateNFT();
+ return transaction;
+ }
+
+ async function onClick (nft) {
+ try {
+ setIsLoading(true);
+ await actions[action].method(nft);
+ } catch (error) {
+ console.log(error);
+ } finally {
+ setIsLoading(false);
+ }
+ }
+
+ return (
+ setIsHovered(true)}
+ onMouseLeave={() => setIsHovered(false)}
+ >
+
+
+
+
+
+ Generation
+ 1
+
+
+ Tier
+ {nft.attributes[0].value}
+
+
+ Level
+ {nft.level.toNumber()}
+
+
+
+
+
+ Token ID: {nft.tokenId.toNumber()}
+
+
+
+ {action === 'sell'
+ ?
setPrice(e.target.value)} />
+ :
+ }
+
+
+
+
+ {nft.owner === ethers.constants.AddressZero && approveStatus !== ApprovalState.APPROVED && nft.seller !== account ? (
+
+ ) : (
+
+ )}
+
+
+ );
+};
+
+const useStyles = makeStyles({
+ root: {
+ flexDirection: 'column',
+ display: 'flex',
+ margin: 15,
+ flexGrow: 1,
+ height: 'auto',
+
+ '& .video': {
+ '& > video': {
+ borderTopLeftRadius: 17,
+ borderTopRightRadius: 17
+ }
+ }
+ },
+ cardContent: {
+ padding: '9px 16px 16px',
+ display: 'flex',
+ flexDirection: 'column',
+ height: '100%'
+ },
+ firstDivider: {
+ margin: '10px 0',
+ borderColor: '#e4e2e226'
+ },
+ addressesAndPrice: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ addressesContainer: {
+ margin: 'auto',
+ width: '60%',
+ textAlign: 'left'
+ },
+ priceContainer: {
+ width: '40%',
+ margin: 'auto',
+ '& input': {
+ fontSize: '20px'
+ }
+ },
+ cardActions: {
+ padding: '10px 16px 16px'
+ },
+ btn: {
+ background: '#ff24df',
+ fontSize: 15
+ }
+})
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/gen1/Gen1CardList.js b/src/views/NftMarketplace/components/gen1/Gen1CardList.js
new file mode 100755
index 0000000..d855c5d
--- /dev/null
+++ b/src/views/NftMarketplace/components/gen1/Gen1CardList.js
@@ -0,0 +1,102 @@
+import { useContext } from 'react'
+import { ethers } from 'ethers'
+import { Grid, Fade } from '@mui/material'
+import { makeStyles } from '@mui/styles'
+import Gen1Card from './Gen1Card'
+import { Web3Context } from '../../utils/Web3Provider'
+import { mapOwnedTokenIdsAsMarketItemsGen1 } from '../../utils/nft'
+import Datasort from "react-data-sort";
+import SortTag from '../card/SortTag'
+
+export default function Gen1CardList({ nfts, setNfts }) {
+ const classes = useStyles();
+ const { account, marketplaceContract, TheoryUnlockerGen1 } = useContext(Web3Context);
+
+ async function updateNFT(index, tokenId) {
+ const updatedNFt = await mapOwnedTokenIdsAsMarketItemsGen1(marketplaceContract, TheoryUnlockerGen1, account)(tokenId);
+ setNfts(prevNfts => {
+ const updatedNfts = [...prevNfts];
+ updatedNfts[index] = updatedNFt;
+ return updatedNfts;
+ });
+ }
+
+ function Gen1NFT({ nft, index }) {
+ // if (nft.owner === account && nft.marketItemId && !nft.hasMarketApproval) {
+ if (nft.owner === account && !nft.hasMarketApproval) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ if (nft.owner === account && nft.hasMarketApproval) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ if (nft.seller === account && !nft.sold) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ if (nft.owner === ethers.constants.AddressZero) {
+ return updateNFT(index, nft.tokenId)} />
+ }
+
+ return
+ }
+
+ return (
+ {
+ return (
+
+
+
+ {data.map((nft, i) =>
+
+
+
+
+
+ )}
+
+
+ );
+ }}
+ />
+ );
+};
+
+const useStyles = makeStyles((theme) => ({
+ grid: {
+ spacing: 3,
+ alignItems: 'stretch',
+ marginTop: 60,
+ '@media (max-width: 640px)': {
+ marginTop: 120
+ }
+ },
+ gridItem: {
+ display: 'flex',
+ transition: 'all .3s',
+
+ '@media (min-width: 1000px)': {
+ maxWidth: '33.3% !important'
+ },
+ '@media (min-width: 641px) and (max-width: 999px)': {
+ maxWidth: '50% !important'
+ },
+ '@media (max-width: 640px)': {
+ maxWidth: '100% !important'
+ }
+ }
+}));
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/markets.js b/src/views/NftMarketplace/components/markets.js
new file mode 100755
index 0000000..0921323
--- /dev/null
+++ b/src/views/NftMarketplace/components/markets.js
@@ -0,0 +1,72 @@
+import { useState } from 'react'
+import { makeStyles } from '@mui/styles'
+import { Box, Typography, Grid, Container } from '@mui/material';
+import Market0 from './markets/market-0';
+import Market1 from './markets/market-1';
+
+export default function Markets() {
+ const [activeTab, setActiveTab] = useState("tab1");
+ const classes = useStyles();
+
+ const handleTab1 = () =>{
+ setActiveTab("tab1");
+ };
+ const handleTab2 = () => {
+ setActiveTab("tab2");
+ };
+
+ return (
+
+
+
+ Gen 0
+ Gen 1
+
+
+ {activeTab ==="tab1" ? : }
+
+
+
+ );
+
+};
+
+const useStyles = makeStyles((theme) => ({
+
+ genContainer: {
+ paddingLeft: 0,
+ paddingRight: 0
+ },
+
+ genField: {
+ display: "flex",
+ justifyContent: "center"
+ },
+
+ genNav: {
+ display: "flex",
+ justifyContent: "space-between",
+ backgroundColor: "#000",
+ width: 230,
+ borderRadius: 30,
+ marginLeft: 22,
+ padding: 1,
+ position: 'absolute'
+ },
+
+ tabs: {
+ fontSize: 18,
+ color: "#999898 !important",
+ padding: "7px 34px",
+ cursor: "pointer"
+ },
+
+ tabActive: {
+ fontSize: 18,
+ color: "#FFF",
+ padding: "7px 34px",
+ backgroundColor: "#ff24df",
+ borderRadius: 20,
+ cursor: "pointer"
+ }
+}));
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/markets/market-0.js b/src/views/NftMarketplace/components/markets/market-0.js
new file mode 100755
index 0000000..971daf1
--- /dev/null
+++ b/src/views/NftMarketplace/components/markets/market-0.js
@@ -0,0 +1,41 @@
+import { useContext, useEffect, useState } from 'react'
+import { CircularProgress } from '@mui/material'
+import Gen0CardList from '../gen0/Gen0CardList'
+import { Web3Context } from '../../utils/Web3Provider'
+import { mapAvailableMarketItems } from '../../utils/nft'
+
+
+export default function Market0 () {
+ const [nfts, setNfts] = useState([]);
+ const [isLoading, setIsLoading] = useState(true);
+
+ const { marketplaceContract, TheoryUnlocker, isReady } = useContext(Web3Context)
+ useEffect(() => {
+ loadNFTs();
+ }, [isReady]);
+
+ async function loadNFTs() {
+ if (!isReady) return;
+
+ const data = await marketplaceContract.fetchAvailableMarketItems()
+ let marketItems = [];
+ for (let i = 0; i < data.length; ++i) {
+ if ((data[i].genNumber).toNumber() == 0) {
+ marketItems.push(data[i]);
+ }
+ }
+
+ const items = await Promise.all(marketItems.map(mapAvailableMarketItems(TheoryUnlocker)))
+ setNfts(items)
+ setIsLoading(false)
+ }
+
+ if (isLoading) return
+ if (!isLoading && !nfts.length) return No NFTs for sale
+ return (
+ isReady && (
+
+ )
+ );
+};
+
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/markets/market-1.js b/src/views/NftMarketplace/components/markets/market-1.js
new file mode 100755
index 0000000..53242b5
--- /dev/null
+++ b/src/views/NftMarketplace/components/markets/market-1.js
@@ -0,0 +1,41 @@
+import { useContext, useEffect, useState } from 'react'
+import { CircularProgress } from '@mui/material'
+import Gen1CardList from '../gen1/Gen1CardList'
+import { Web3Context } from '../../utils/Web3Provider'
+import { mapAvailableMarketItemsGen1 } from '../../utils/nft'
+
+
+export default function Market1 () {
+ const [nfts, setNfts] = useState([]);
+ const [isLoading, setIsLoading] = useState(true);
+
+ const { marketplaceContract, TheoryUnlockerGen1, isReady } = useContext(Web3Context)
+
+ useEffect(() => {
+ loadNFTs();
+ }, [isReady]);
+
+ async function loadNFTs() {
+ if (!isReady) return;
+
+ const data = await marketplaceContract.fetchAvailableMarketItems()
+ let marketItems = [];
+ for (let i = 0; i < data.length; ++i) {
+ if ((data[i].genNumber).toNumber() == 1) {
+ marketItems.push(data[i]);
+ }
+ }
+ const items = await Promise.all(marketItems.map(mapAvailableMarketItemsGen1(TheoryUnlockerGen1)))
+ setNfts(items)
+ setIsLoading(false)
+ }
+
+ if (isLoading) return
+ if (!isLoading && !nfts.length) return No NFTs for sale
+ return (
+ isReady && (
+
+ )
+ );
+};
+
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/myNFTs/myGen-0.js b/src/views/NftMarketplace/components/myNFTs/myGen-0.js
new file mode 100644
index 0000000..f8a8f8b
--- /dev/null
+++ b/src/views/NftMarketplace/components/myNFTs/myGen-0.js
@@ -0,0 +1,35 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { CircularProgress } from '@mui/material'
+import { Web3Context } from '../../utils/Web3Provider'
+import { mapOwnedTokenIdsAsMarketItems, getUniqueOwnedTokenIds } from '../../utils/nft'
+import Gen0CardList from '../gen0/Gen0CardList';
+
+export default function MyGen0() {
+ const [nfts, setNfts] = useState([]);
+ const [isLoading, setIsLoading] = useState(true);
+ const { account, marketplaceContract, TheoryUnlocker, isReady, hasWeb3 } = useContext(Web3Context);
+
+ useEffect(() => {
+ loadNFTs();
+ }, [account, isReady, TheoryUnlocker]);
+
+ async function loadNFTs() {
+ if (!isReady || !hasWeb3) return <>>
+ const myUniqueOwnedTokenIds = await getUniqueOwnedTokenIds(TheoryUnlocker, account)
+ const myNfts = await Promise.all(myUniqueOwnedTokenIds.map(
+ mapOwnedTokenIdsAsMarketItems(marketplaceContract, TheoryUnlocker, account)
+ ))
+
+ setNfts(myNfts)
+ setIsLoading(false)
+ };
+
+ if (isLoading) return
+ if (!isLoading && !nfts.length) return No NFTs
+ return (
+ isReady && (
+
+ )
+ );
+};
+
\ No newline at end of file
diff --git a/src/views/NftMarketplace/components/myNFTs/myGen-1.js b/src/views/NftMarketplace/components/myNFTs/myGen-1.js
new file mode 100644
index 0000000..ffbedf3
--- /dev/null
+++ b/src/views/NftMarketplace/components/myNFTs/myGen-1.js
@@ -0,0 +1,34 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { CircularProgress } from '@mui/material'
+import { Web3Context } from '../../utils/Web3Provider'
+import { mapOwnedTokenIdsAsMarketItemsGen1, getUniqueOwnedTokenIdsGen1 } from '../../utils/nft'
+import Gen1CardList from '../gen1/Gen1CardList';
+
+export default function MyGen1() {
+ const [nfts, setNfts] = useState([]);
+ const [isLoading, setIsLoading] = useState(true);
+ const { account, marketplaceContract, TheoryUnlockerGen1, isReady, hasWeb3 } = useContext(Web3Context);
+
+ useEffect(() => {
+ loadNFTs();
+ }, [account, isReady, TheoryUnlockerGen1]);
+
+ async function loadNFTs() {
+ if (!isReady || !hasWeb3) return <>>
+ const myUniqueOwnedTokenIds = await getUniqueOwnedTokenIdsGen1(TheoryUnlockerGen1, account)
+ const myNfts = await Promise.all(myUniqueOwnedTokenIds.map(
+ mapOwnedTokenIdsAsMarketItemsGen1(marketplaceContract, TheoryUnlockerGen1, account)
+ ))
+
+ setNfts(myNfts)
+ setIsLoading(false)
+ };
+
+ if (isLoading) return
+ if (!isLoading && !nfts.length) return No NFTs
+ return (
+ isReady && (
+
+ )
+ );
+};
diff --git a/src/views/NftMarketplace/components/myNfts.js b/src/views/NftMarketplace/components/myNfts.js
new file mode 100755
index 0000000..b939b44
--- /dev/null
+++ b/src/views/NftMarketplace/components/myNfts.js
@@ -0,0 +1,73 @@
+import { useState } from 'react'
+import { makeStyles } from '@mui/styles'
+import { Box, Typography, Grid, Container } from '@mui/material';
+import MyGen0 from './myNFTs/myGen-0'
+import MyGen1 from './myNFTs/myGen-1'
+
+export default function MyNFTs() {
+ const [activeTab, setActiveTab] = useState("tab1");
+ const classes = useStyles();
+
+ const handleTab1 = () =>{
+ setActiveTab("tab1");
+ };
+ const handleTab2 = () => {
+ setActiveTab("tab2");
+ };
+
+ return (
+
+
+
+ Gen 0
+ Gen 1
+
+
+ {activeTab ==="tab1" ? : }
+
+
+
+ );
+
+};
+
+const useStyles = makeStyles((theme) => ({
+
+ genContainer: {
+ paddingLeft: 0,
+ paddingRight: 0
+ },
+
+ genField: {
+ display: "flex",
+ justifyContent: "center"
+ },
+
+ genNav: {
+ display: "flex",
+ justifyContent: "space-between",
+ backgroundColor: "#000",
+ width: 230,
+ borderRadius: 30,
+ marginLeft: 22,
+ padding: 1,
+ position: 'absolute'
+ },
+
+ tabs: {
+ fontSize: 18,
+ color: "#999898 !important",
+ padding: "7px 34px",
+ cursor: "pointer"
+ },
+
+ tabActive: {
+ fontSize: 18,
+ color: "#FFF",
+ padding: "7px 34px",
+ backgroundColor: "#ff24df",
+ borderRadius: 20,
+ cursor: "pointer"
+ }
+}));
+
diff --git a/src/views/NftMarketplace/index.js b/src/views/NftMarketplace/index.js
new file mode 100644
index 0000000..648833f
--- /dev/null
+++ b/src/views/NftMarketplace/index.js
@@ -0,0 +1 @@
+export { default } from './NftMarketplace';
diff --git a/src/views/NftMarketplace/utils/Web3Provider.js b/src/views/NftMarketplace/utils/Web3Provider.js
new file mode 100755
index 0000000..9808762
--- /dev/null
+++ b/src/views/NftMarketplace/utils/Web3Provider.js
@@ -0,0 +1,130 @@
+import React, { createContext, useCallback, useEffect, useState } from 'react'
+import Web3Modal from 'web3modal'
+import { ethers } from 'ethers'
+import useTombFinance from '../../../hooks/useTombFinance'
+
+const contextDefaultValues = {
+ account: '',
+ connectWallet: () => { },
+ marketplaceContract: null,
+ TheoryUnlocker: null,
+ TheoryUnlockerGen1: null,
+ GameContract: null,
+ isReady: false,
+ hasWeb3: false
+};
+
+export const Web3Context = createContext(
+ contextDefaultValues
+);
+
+export default function Web3Provider({ children }) {
+ const tombFinance = useTombFinance();
+
+ const [hasWeb3, setHasWeb3] = useState(contextDefaultValues.hasWeb3);
+ const [account, setAccount] = useState(contextDefaultValues.account);
+ const [marketplaceContract, setMarketplaceContract] = useState(contextDefaultValues.marketplaceContract);
+ const [TheoryUnlocker, setTheoryUnlocker] = useState();
+ const [TheoryUnlockerGen1, setTheoryUnlockerGen1] = useState();
+ const [GameContract, setGameContract] = useState();
+ const [isReady, setIsReady] = useState(contextDefaultValues.isReady);
+
+ useEffect(() => {
+ initializeWeb3();
+ }, []);
+
+
+ const getTheoryUnlockers = useCallback(async () => {
+ setIsReady(false);
+ const web3Modal = new Web3Modal();
+ const connection = await web3Modal.connect();
+ const provider = new ethers.providers.Web3Provider(connection);
+ const signer = provider.getSigner();
+
+ const TheoryUnlockerAddress = await tombFinance?.getTheoryUnlockerAddress();
+ const TheoryUnlockerABI = await tombFinance?.getTheoryUnlockerABI();
+ const TheoryUnlocker = new ethers.Contract(TheoryUnlockerAddress, TheoryUnlockerABI, signer);
+ setTheoryUnlocker(TheoryUnlocker);
+
+ const TheoryUnlockerGen1Address = await tombFinance?.getTheoryUnlockerGen1Address();
+ const TheoryUnlockerGen1ABI = await tombFinance?.getTheoryUnlockerGen1ABI();
+ const TheoryUnlockerGen1 = new ethers.Contract(TheoryUnlockerGen1Address, TheoryUnlockerGen1ABI, signer);
+ setTheoryUnlockerGen1(TheoryUnlockerGen1);
+
+ const MarketplaceAddress = await tombFinance?.getMarketplaceAddress();
+ const MarketplaceABI = await tombFinance?.getMarketplaceABI();
+ const MarketplaceContract = new ethers.Contract(MarketplaceAddress, MarketplaceABI, signer);
+ setMarketplaceContract(MarketplaceContract);
+
+
+ const GameContractAddress = await tombFinance?.getGameContractAddress();
+ const GameContractABI = await tombFinance?.getGameContractABI();
+ const GameContract = new ethers.Contract(GameContractAddress, GameContractABI, signer);
+ setGameContract(GameContract);
+
+ setIsReady(true);
+ }, [tombFinance]);
+
+ useEffect(() => {
+ getTheoryUnlockers().catch((err) => console.error(`Failed to fetch Theory Unlockers: ${err.stack}`));
+ }, [tombFinance, getTheoryUnlockers, setTheoryUnlocker, setTheoryUnlockerGen1, setMarketplaceContract, setGameContract]);
+
+
+ async function initializeWeb3WithoutSigner() {
+ const provider = new ethers.providers.JsonRpcProvider();
+ setHasWeb3(false);
+ };
+
+ async function initializeWeb3() {
+ try {
+ if (!window.ethereum) {
+ await initializeWeb3WithoutSigner()
+ return
+ }
+
+ let onAccountsChangedCooldown = false
+ const web3Modal = new Web3Modal()
+ const connection = await web3Modal.connect()
+ setHasWeb3(true)
+ const provider = new ethers.providers.Web3Provider(connection, 'any')
+ await getAndSetWeb3ContextWithSigner(provider)
+
+ function onAccountsChanged(accounts) {
+ if (onAccountsChangedCooldown) return
+ onAccountsChangedCooldown = true
+ setTimeout(() => { onAccountsChangedCooldown = false }, 1000)
+ const changedAddress = ethers.utils.getAddress(accounts[0])
+ setAccount(changedAddress)
+ }
+
+ connection.on('accountsChanged', onAccountsChanged)
+ connection.on('chainChanged', initializeWeb3)
+ } catch (error) {
+ initializeWeb3WithoutSigner()
+ console.log(error)
+ }
+ };
+
+ async function getAndSetWeb3ContextWithSigner(provider) {
+ const signer = provider.getSigner()
+ const signerAddress = await signer.getAddress()
+ setAccount(signerAddress)
+ }
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/src/views/NftMarketplace/utils/createEmotionCache.js b/src/views/NftMarketplace/utils/createEmotionCache.js
new file mode 100755
index 0000000..a50e840
--- /dev/null
+++ b/src/views/NftMarketplace/utils/createEmotionCache.js
@@ -0,0 +1,7 @@
+import createCache from '@emotion/cache'
+
+// prepend: true moves MUI styles to the top of the so they're loaded first.
+// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.
+export default function createEmotionCache () {
+ return createCache({ key: 'css', prepend: true })
+}
diff --git a/src/views/NftMarketplace/utils/format.js b/src/views/NftMarketplace/utils/format.js
new file mode 100755
index 0000000..5047b49
--- /dev/null
+++ b/src/views/NftMarketplace/utils/format.js
@@ -0,0 +1,4 @@
+export function shortenAddress (address) {
+ if (!address) return ''
+ return address.slice(0, 8);
+};
diff --git a/src/views/NftMarketplace/utils/nft.js b/src/views/NftMarketplace/utils/nft.js
new file mode 100755
index 0000000..549ea0e
--- /dev/null
+++ b/src/views/NftMarketplace/utils/nft.js
@@ -0,0 +1,108 @@
+import axios from 'axios'
+import { ethers } from 'ethers'
+
+export async function getTokenMetadataByTokenId (TheoryUnlocker, tokenId) {
+ try {
+ const tokenUri = (await TheoryUnlocker.tokenURI(tokenId)).replace("ipfs://", "https://") + ".ipfs.nftstorage.link";
+ const metadata = (await axios(tokenUri)).data;
+ await new Promise(r => setTimeout(r, 1000));
+ metadata.animation_url = metadata.animation_url.replace("ipfs://", "https://") + ".ipfs.nftstorage.link";
+ metadata.level = (await TheoryUnlocker.tokenInfo(tokenId)).level;
+ return metadata
+ } catch (error) {
+ console.log(error)
+ }
+}
+
+export function mapAvailableMarketItems (TheoryUnlocker) {
+ return async (marketItem) => {
+ const metadata = await getTokenMetadataByTokenId(TheoryUnlocker, marketItem.tokenId)
+ return mapMarketItem(marketItem, metadata)
+ }
+}
+
+export function mapOwnedTokenIdsAsMarketItems (marketplaceContract, TheoryUnlocker, account) {
+ return async (tokenId) => {
+ const metadata = await getTokenMetadataByTokenId(TheoryUnlocker, tokenId)
+ const approveAddress = await TheoryUnlocker.getApproved(tokenId)
+ const hasMarketApproval = approveAddress === marketplaceContract.address
+ const [foundMarketItem, hasFound] = await marketplaceContract.getLatestMarketItemByTokenId(tokenId)
+ const marketItem = hasFound ? foundMarketItem : {}
+ return mapMarketItem(marketItem, metadata, tokenId, account, hasMarketApproval)
+ }
+}
+
+export function mapMarketItem (marketItem, metadata, tokenId, account, hasMarketApproval) {
+ return {
+ price: marketItem.price ? ethers.utils.formatUnits(marketItem.price, 'ether') : undefined,
+ tokenId: marketItem.tokenId || tokenId,
+ marketItemId: marketItem.marketItemId || undefined,
+ seller: marketItem.seller || undefined,
+ owner: marketItem.owner || account,
+ sold: marketItem.sold || false,
+ canceled: marketItem.canceled || false,
+ animation_url: metadata.animation_url,
+ level: metadata.level,
+ attributes: metadata.attributes,
+ genNumber: marketItem.genNumber,
+ hasMarketApproval: hasMarketApproval || false
+ };
+};
+
+export async function getUniqueOwnedTokenIds (TheoryUnlocker, account) {
+ let myNftIds = []
+ const OwnedTokenBalance = await TheoryUnlocker.balanceOf(account);
+ const balToNum = OwnedTokenBalance.toNumber()
+
+ for (let i = 0; i < balToNum; i++) {
+ const tokenId = await TheoryUnlocker.tokenOfOwnerByIndex(account, i);
+ myNftIds[i] = tokenId;
+ }
+
+ return [...new Map(myNftIds.map((item) => [item._hex, item])).values()]
+}
+
+// TheoryUnlockerGen1 functions
+export async function getTokenMetadataByTokenIdGen1 (TheoryUnlockerGen1, tokenId) {
+ try {
+ const tokenUri = (await TheoryUnlockerGen1.tokenURI(tokenId)).replace("ipfs://", "https://") + ".ipfs.nftstorage.link";
+ const metadata = (await axios(tokenUri)).data;
+ await new Promise(r => setTimeout(r, 1000));
+ metadata.animation_url = metadata.animation_url.replace("ipfs://", "https://") + ".ipfs.nftstorage.link";
+ metadata.level = (await TheoryUnlockerGen1.tokenInfo(tokenId)).level;
+ return metadata
+ } catch (error) {
+ console.log(error)
+ }
+}
+
+export function mapAvailableMarketItemsGen1 (TheoryUnlockerGen1) {
+ return async (marketItem) => {
+ const metadata = await getTokenMetadataByTokenIdGen1(TheoryUnlockerGen1, marketItem.tokenId)
+ return mapMarketItem(marketItem, metadata)
+ }
+}
+
+export function mapOwnedTokenIdsAsMarketItemsGen1 (marketplaceContract, TheoryUnlockerGen1, account) {
+ return async (tokenId) => {
+ const metadata = await getTokenMetadataByTokenIdGen1(TheoryUnlockerGen1, tokenId)
+ const approveAddress = await TheoryUnlockerGen1.getApproved(tokenId)
+ const hasMarketApproval = approveAddress === marketplaceContract.address
+ const [foundMarketItem, hasFound] = await marketplaceContract.getLatestMarketItemByTokenId(tokenId)
+ const marketItem = hasFound ? foundMarketItem : {}
+ return mapMarketItem(marketItem, metadata, tokenId, account, hasMarketApproval)
+ }
+}
+
+export async function getUniqueOwnedTokenIdsGen1 (TheoryUnlockerGen1, account) {
+ let myNftIds = []
+ const OwnedTokenBalance = await TheoryUnlockerGen1.balanceOf(account);
+ const balToNum = OwnedTokenBalance.toNumber()
+
+ for (let i = 0; i < balToNum; i++) {
+ const tokenId = await TheoryUnlockerGen1.tokenOfOwnerByIndex(account, i);
+ myNftIds[i] = tokenId;
+ }
+
+ return [...new Map(myNftIds.map((item) => [item._hex, item])).values()]
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index bfa83d1..2e8dc6e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8429,6 +8429,11 @@ detect-browser@5.2.0:
resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97"
integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==
+detect-browser@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca"
+ integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==
+
detect-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
@@ -17457,7 +17462,7 @@ react-dev-utils@^11.0.3:
strip-ansi "6.0.0"
text-table "0.2.0"
-react-dom@^16.13.1:
+react-dom@^16.13.1, react-dom@^16.8.6:
version "16.14.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==
@@ -17642,7 +17647,7 @@ react-transition-group@^4.4.2:
loose-envify "^1.4.0"
prop-types "^15.6.2"
-react@^16.13.1:
+react@^16.13.1, react@^16.8.6:
version "16.14.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
@@ -19391,7 +19396,7 @@ style-loader@1.3.0:
loader-utils "^2.0.0"
schema-utils "^2.7.0"
-styled-components@^5.1.1:
+styled-components@^5.1.1, styled-components@^5.3.3:
version "5.3.5"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.5.tgz#a750a398d01f1ca73af16a241dec3da6deae5ec4"
integrity sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==
@@ -20060,7 +20065,7 @@ tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^1.8.1, tslib@^1.9.0:
+tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -21787,6 +21792,18 @@ web3@^1.2.11:
web3-shh "1.7.3"
web3-utils "1.7.3"
+web3modal@^1.9.7:
+ version "1.9.7"
+ resolved "https://registry.yarnpkg.com/web3modal/-/web3modal-1.9.7.tgz#d657b97e53faafae60c55038d046781083645423"
+ integrity sha512-z3XfY7cV8GwGvHP3WvrSxPU6/7ocwVyiU77U/Lxoa53AUSsOKl01V8ErZ8CkJSH41C3YgzwBaOETj0rC9uFBKg==
+ dependencies:
+ detect-browser "^5.1.0"
+ prop-types "^15.7.2"
+ react "^16.8.6"
+ react-dom "^16.8.6"
+ styled-components "^5.3.3"
+ tslib "^1.10.0"
+
webidl-conversions@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-2.0.1.tgz#3bf8258f7d318c7443c36f2e169402a1a6703506"