@le7el/core_nfts
Version:
LE7EL identity, avatar and investor NFTs
1 lines • 125 kB
JSON
{"abi":[{"type":"function","name":"DEF_LEVELING_COF1","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"DEF_LEVELING_COF2","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"DEF_LEVELING_COF3","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"DEF_LEVELING_COF4","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"IERC1155_BURNABLE","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"IERC20_BURNABLE_V1","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"IERC20_BURNABLE_V2","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"advanceToNextLevel","inputs":[{"name":"_project","type":"bytes32","internalType":"bytes32"},{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_burnExperienceTokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"experience","inputs":[{"name":"_project","type":"bytes32","internalType":"bytes32"},{"name":"_node","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"level","inputs":[{"name":"_project","type":"bytes32","internalType":"bytes32"},{"name":"_node","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"levelingProjects","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"formula","type":"address","internalType":"address"},{"name":"experienceToken","type":"address","internalType":"address"},{"name":"experienceTokenId","type":"uint256","internalType":"uint256"},{"name":"burnInterface","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"setProjectLevelingRules","inputs":[{"name":"_project","type":"bytes32","internalType":"bytes32"},{"name":"_levelingFormulaProxy","type":"address","internalType":"address"},{"name":"_experienceToken","type":"address","internalType":"address"},{"name":"_experienceTokenId","type":"uint256","internalType":"uint256"},{"name":"_burnInterface","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"AdvancedToNextLevel","inputs":[{"name":"project","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"node","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newExperience","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalExperience","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProjectLevelingRulesChanged","inputs":[{"name":"project","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"burnInterface","type":"bytes4","indexed":true,"internalType":"bytes4"},{"name":"experienceToken","type":"address","indexed":true,"internalType":"address"},{"name":"experienceTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"levelingFormulaProxy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEF_LEVELING_COF1()":"3186b795","DEF_LEVELING_COF2()":"26120e8b","DEF_LEVELING_COF3()":"308608ad","DEF_LEVELING_COF4()":"ce5ab5d3","IERC1155_BURNABLE()":"f65bba57","IERC20_BURNABLE_V1()":"992f100f","IERC20_BURNABLE_V2()":"c6f67e2d","advanceToNextLevel(bytes32,bytes32,uint256)":"d33e7f51","experience(bytes32,bytes32)":"7a605462","level(bytes32,bytes32)":"b1982413","levelingProjects(bytes32)":"e5ef9a2b","setProjectLevelingRules(bytes32,address,address,uint256,bytes4)":"418e528a","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"project\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newExperience\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalExperience\",\"type\":\"uint256\"}],\"name\":\"AdvancedToNextLevel\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"project\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"burnInterface\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"experienceToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"experienceTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"levelingFormulaProxy\",\"type\":\"address\"}],\"name\":\"ProjectLevelingRulesChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEF_LEVELING_COF1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEF_LEVELING_COF2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEF_LEVELING_COF3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEF_LEVELING_COF4\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC1155_BURNABLE\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC20_BURNABLE_V1\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC20_BURNABLE_V2\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_project\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_burnExperienceTokenAmount\",\"type\":\"uint256\"}],\"name\":\"advanceToNextLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_project\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"experience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_project\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"level\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"levelingProjects\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"formula\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"experienceToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"experienceTokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"burnInterface\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_project\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_levelingFormulaProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_experienceToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_experienceTokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"_burnInterface\",\"type\":\"bytes4\"}],\"name\":\"setProjectLevelingRules\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Any owner of a node can configure own leveling system for other NFT owners. He configures his node as project for external usage, defining experience token and leveling formula. NFT owner needs to burn experience tokens set for such a project to level up. Leveling formula can be set as an oracle conract, or default formula 500*level^2-500*level=exp will be used.\",\"kind\":\"dev\",\"methods\":{\"advanceToNextLevel(bytes32,bytes32,uint256)\":{\"details\":\"Burn experience tokens to advance in leveling.\",\"params\":{\"_burnExperienceTokenAmount\":\"amount of experience tokens to burn.\",\"_node\":\"the node to update.\",\"_project\":\"node for a project which issue experience.\"},\"returns\":{\"_0\":\"updated experience.\"}},\"experience(bytes32,bytes32)\":{\"details\":\"Experience in scope of project.\",\"params\":{\"_node\":\"the node to query.\",\"_project\":\"node for a project which issue experience.\"},\"returns\":{\"_0\":\"project experience\"}},\"level(bytes32,bytes32)\":{\"details\":\"Level based on experience.\",\"params\":{\"_node\":\"the node to query.\",\"_project\":\"node for a project which issue experience.\"},\"returns\":{\"_0\":\"level based on experience\"}},\"setProjectLevelingRules(bytes32,address,address,uint256,bytes4)\":{\"details\":\"Project controller can update leveling system and experience token.\",\"params\":{\"_burnInterface\":\"signature of burning function: 0xf5298aca, 0x9dc29fac or 0x79cc6790 (default).\",\"_experienceToken\":\"address of experience token. \",\"_experienceTokenId\":\"experience token id in case of ERC1155, pass 0 for ERC20.\",\"_levelingFormulaProxy\":\"address of proxy contract which implements ILevelingFormula, pass address(0) for default formula.\",\"_project\":\"node for a project which issue experience.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Check if specific interface is implemented.\",\"params\":{\"interfaceID\":\"Keccak of matched interface.\"},\"returns\":{\"_0\":\"true if implemented.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/resolver/profile/LevelResolver.sol\":\"LevelResolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@le7el/=node_modules/@le7el/\",\":@le7el/generative_art/=node_modules/@le7el/generative_art/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\",\":src/=src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6392f2cfe3a5ee802227fe7a2dfd47096d881aec89bddd214b35c5b46d3cd941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd9c47a375639888e726a99da718890ba16d17d7ad9eacb0ccc892d46d1b3ee0\",\"dweb:/ipfs/Qmb41W5RUjy2sWg49A2rMnxekSeEk6SvGyJL5tyCCSr7un\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/BaseResolver.sol\":{\"keccak256\":\"0x461a8dbdb0ebaa5b6e3db590387b3db0e6a53ca26ca68f71c8f4ee76f712d705\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b66c6620b5b8cc76c3fef742f500b65036e6a7260d625f35e1d8176bab64203\",\"dweb:/ipfs/QmVesMAMhS6jSCZywTZwcDW8A63dRbxuQuYzWoMxjhRuzG\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/ISupportsInterface.sol\":{\"keccak256\":\"0xfa518f3a6f66d0b1ea55c2410c907225732d845b0b5ae08d974c5a41b26ee1fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66dc2e00febd00c6e968b6501ffc60c0f6e5ddf567f5d05fee7bb8a2a1a001d2\",\"dweb:/ipfs/QmeZ6nZxdqwtZ176nQGzQVjtR4JdMys7bAUocHXQBKNLRb\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/SupportsInterface.sol\":{\"keccak256\":\"0x179aa7374e9bad89213ad06192c5d5f68405e01b0118c6298536807efb9be5e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693657bede206924c400c0a8a8ea87c13b5c0a88ac416034ed957f7fbd523d16\",\"dweb:/ipfs/QmUMDK9yVt8BeFdJB1KJWs3UcroZ2eVag66fJmewS7PzXN\"]},\"src/interface/IERC1155Burnable.sol\":{\"keccak256\":\"0x0c3a31e60668f4c7b7f502f69a7be1c73ba44fe762361f7e09dcdc48b9966ad4\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://ef45b49604d03e8b37809fef620a9b466ce727fef82fe2113b562bd90ea3e1bc\",\"dweb:/ipfs/QmQ6rPB3Lv3zsicYfX2UAEEnq1veLbviUhAhPSU1g5Edfh\"]},\"src/interface/IERC20.sol\":{\"keccak256\":\"0xd0546c96aa1bc67be269884fce1efd3f19435d528a63589bb5ff4835e3730cf8\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://bdb72e89d80eb1c272be2064e5b582aec5d405471983a1e833b873ad43ee571b\",\"dweb:/ipfs/QmZLDjwCJvihZxjtAxB7ADV6XgjpPtmCsPhGj2qFEo9VFu\"]},\"src/interface/IERC20BurnableV1.sol\":{\"keccak256\":\"0x62a88173ec6ccd5ae81de17bac6f9fad41245cd3566459b753d976d677bff1a9\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://141b185896eab9d09fd3fa060dae1c73e90b99e973320fe9199424cdea57cc14\",\"dweb:/ipfs/QmWjGeWLD9iqMHqrb8WHzc9objdcDJGcyii7v8uQw2Tt2U\"]},\"src/interface/IERC20BurnableV2.sol\":{\"keccak256\":\"0x595fa8ebd6e5b8ce39180ba9f36e470ae1f7da6a80e312f0c9f522ababd7172a\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://85da5ca02ca41f09b1d5b2411eabd8018afdcf541ceffcc77caaa4e6d8b1ca35\",\"dweb:/ipfs/QmRdHrYjQGeGJJ3mLCGY1xnRnWY3CNUfqGf1LkkV4Cig7u\"]},\"src/resolver/profile/ILevelResolver.sol\":{\"keccak256\":\"0x36c3a092dc58dac4963db5c651e23ee270c1ba4bcf21fc29ff9a819014d41c01\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://a3c4c20fd098754f522554ac5237e37d171e5f471451add69b41d4fa72d576c6\",\"dweb:/ipfs/QmdEfbaaPEXLKY8RYK7bKtMPLkiyk4pFjtCiABWHhv2aeX\"]},\"src/resolver/profile/ILevelingFormula.sol\":{\"keccak256\":\"0x99ea76f39c9987505462fccc5399422149a6cd02832e6ffe3706368ca866af37\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://f7859a17d5b645144e544697b7b6a70b9add8e4df583101882d13836b08d785e\",\"dweb:/ipfs/QmZSynUmUK6HY6qLaMTWHXzMa134UGp6v8v73Wwp1E6pke\"]},\"src/resolver/profile/LevelResolver.sol\":{\"keccak256\":\"0xb91c4c1e47f56b20e85b88a3aa69f924327f47ed4a2dd4b6a33598f81d68f37d\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://d009503d8bb3bfa01750e8b75a5d3ee511e3db29303e9f323660a74bcc3edded\",\"dweb:/ipfs/QmWvLnnTbLBWrvyeNhb8u35qk82yWoq2a7o5CDCZKRBvjN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"project","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"node","type":"bytes32","indexed":true},{"internalType":"uint256","name":"newExperience","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalExperience","type":"uint256","indexed":false}],"type":"event","name":"AdvancedToNextLevel","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"project","type":"bytes32","indexed":true},{"internalType":"bytes4","name":"burnInterface","type":"bytes4","indexed":true},{"internalType":"address","name":"experienceToken","type":"address","indexed":true},{"internalType":"uint256","name":"experienceTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"levelingFormulaProxy","type":"address","indexed":false}],"type":"event","name":"ProjectLevelingRulesChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEF_LEVELING_COF1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEF_LEVELING_COF2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEF_LEVELING_COF3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEF_LEVELING_COF4","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IERC1155_BURNABLE","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IERC20_BURNABLE_V1","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IERC20_BURNABLE_V2","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes32","name":"_project","type":"bytes32"},{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"uint256","name":"_burnExperienceTokenAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"advanceToNextLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_project","type":"bytes32"},{"internalType":"bytes32","name":"_node","type":"bytes32"}],"stateMutability":"view","type":"function","name":"experience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_project","type":"bytes32"},{"internalType":"bytes32","name":"_node","type":"bytes32"}],"stateMutability":"view","type":"function","name":"level","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"levelingProjects","outputs":[{"internalType":"address","name":"formula","type":"address"},{"internalType":"address","name":"experienceToken","type":"address"},{"internalType":"uint256","name":"experienceTokenId","type":"uint256"},{"internalType":"bytes4","name":"burnInterface","type":"bytes4"}]},{"inputs":[{"internalType":"bytes32","name":"_project","type":"bytes32"},{"internalType":"address","name":"_levelingFormulaProxy","type":"address"},{"internalType":"address","name":"_experienceToken","type":"address"},{"internalType":"uint256","name":"_experienceTokenId","type":"uint256"},{"internalType":"bytes4","name":"_burnInterface","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"setProjectLevelingRules"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"advanceToNextLevel(bytes32,bytes32,uint256)":{"details":"Burn experience tokens to advance in leveling.","params":{"_burnExperienceTokenAmount":"amount of experience tokens to burn.","_node":"the node to update.","_project":"node for a project which issue experience."},"returns":{"_0":"updated experience."}},"experience(bytes32,bytes32)":{"details":"Experience in scope of project.","params":{"_node":"the node to query.","_project":"node for a project which issue experience."},"returns":{"_0":"project experience"}},"level(bytes32,bytes32)":{"details":"Level based on experience.","params":{"_node":"the node to query.","_project":"node for a project which issue experience."},"returns":{"_0":"level based on experience"}},"setProjectLevelingRules(bytes32,address,address,uint256,bytes4)":{"details":"Project controller can update leveling system and experience token.","params":{"_burnInterface":"signature of burning function: 0xf5298aca, 0x9dc29fac or 0x79cc6790 (default).","_experienceToken":"address of experience token. ","_experienceTokenId":"experience token id in case of ERC1155, pass 0 for ERC20.","_levelingFormulaProxy":"address of proxy contract which implements ILevelingFormula, pass address(0) for default formula.","_project":"node for a project which issue experience."}},"supportsInterface(bytes4)":{"details":"Check if specific interface is implemented.","params":{"interfaceID":"Keccak of matched interface."},"returns":{"_0":"true if implemented."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@le7el/=node_modules/@le7el/","@le7el/generative_art/=node_modules/@le7el/generative_art/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/src/","src/=src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/resolver/profile/LevelResolver.sol":"LevelResolver"},"libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6392f2cfe3a5ee802227fe7a2dfd47096d881aec89bddd214b35c5b46d3cd941","urls":["bzz-raw://bd9c47a375639888e726a99da718890ba16d17d7ad9eacb0ccc892d46d1b3ee0","dweb:/ipfs/Qmb41W5RUjy2sWg49A2rMnxekSeEk6SvGyJL5tyCCSr7un"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/BaseResolver.sol":{"keccak256":"0x461a8dbdb0ebaa5b6e3db590387b3db0e6a53ca26ca68f71c8f4ee76f712d705","urls":["bzz-raw://6b66c6620b5b8cc76c3fef742f500b65036e6a7260d625f35e1d8176bab64203","dweb:/ipfs/QmVesMAMhS6jSCZywTZwcDW8A63dRbxuQuYzWoMxjhRuzG"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/ISupportsInterface.sol":{"keccak256":"0xfa518f3a6f66d0b1ea55c2410c907225732d845b0b5ae08d974c5a41b26ee1fe","urls":["bzz-raw://66dc2e00febd00c6e968b6501ffc60c0f6e5ddf567f5d05fee7bb8a2a1a001d2","dweb:/ipfs/QmeZ6nZxdqwtZ176nQGzQVjtR4JdMys7bAUocHXQBKNLRb"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/SupportsInterface.sol":{"keccak256":"0x179aa7374e9bad89213ad06192c5d5f68405e01b0118c6298536807efb9be5e1","urls":["bzz-raw://693657bede206924c400c0a8a8ea87c13b5c0a88ac416034ed957f7fbd523d16","dweb:/ipfs/QmUMDK9yVt8BeFdJB1KJWs3UcroZ2eVag66fJmewS7PzXN"],"license":"MIT"},"src/interface/IERC1155Burnable.sol":{"keccak256":"0x0c3a31e60668f4c7b7f502f69a7be1c73ba44fe762361f7e09dcdc48b9966ad4","urls":["bzz-raw://ef45b49604d03e8b37809fef620a9b466ce727fef82fe2113b562bd90ea3e1bc","dweb:/ipfs/QmQ6rPB3Lv3zsicYfX2UAEEnq1veLbviUhAhPSU1g5Edfh"],"license":"MPL-2.0"},"src/interface/IERC20.sol":{"keccak256":"0xd0546c96aa1bc67be269884fce1efd3f19435d528a63589bb5ff4835e3730cf8","urls":["bzz-raw://bdb72e89d80eb1c272be2064e5b582aec5d405471983a1e833b873ad43ee571b","dweb:/ipfs/QmZLDjwCJvihZxjtAxB7ADV6XgjpPtmCsPhGj2qFEo9VFu"],"license":"MPL-2.0"},"src/interface/IERC20BurnableV1.sol":{"keccak256":"0x62a88173ec6ccd5ae81de17bac6f9fad41245cd3566459b753d976d677bff1a9","urls":["bzz-raw://141b185896eab9d09fd3fa060dae1c73e90b99e973320fe9199424cdea57cc14","dweb:/ipfs/QmWjGeWLD9iqMHqrb8WHzc9objdcDJGcyii7v8uQw2Tt2U"],"license":"MPL-2.0"},"src/interface/IERC20BurnableV2.sol":{"keccak256":"0x595fa8ebd6e5b8ce39180ba9f36e470ae1f7da6a80e312f0c9f522ababd7172a","urls":["bzz-raw://85da5ca02ca41f09b1d5b2411eabd8018afdcf541ceffcc77caaa4e6d8b1ca35","dweb:/ipfs/QmRdHrYjQGeGJJ3mLCGY1xnRnWY3CNUfqGf1LkkV4Cig7u"],"license":"MPL-2.0"},"src/resolver/profile/ILevelResolver.sol":{"keccak256":"0x36c3a092dc58dac4963db5c651e23ee270c1ba4bcf21fc29ff9a819014d41c01","urls":["bzz-raw://a3c4c20fd098754f522554ac5237e37d171e5f471451add69b41d4fa72d576c6","dweb:/ipfs/QmdEfbaaPEXLKY8RYK7bKtMPLkiyk4pFjtCiABWHhv2aeX"],"license":"MPL-2.0"},"src/resolver/profile/ILevelingFormula.sol":{"keccak256":"0x99ea76f39c9987505462fccc5399422149a6cd02832e6ffe3706368ca866af37","urls":["bzz-raw://f7859a17d5b645144e544697b7b6a70b9add8e4df583101882d13836b08d785e","dweb:/ipfs/QmZSynUmUK6HY6qLaMTWHXzMa134UGp6v8v73Wwp1E6pke"],"license":"MPL-2.0"},"src/resolver/profile/LevelResolver.sol":{"keccak256":"0xb91c4c1e47f56b20e85b88a3aa69f924327f47ed4a2dd4b6a33598f81d68f37d","urls":["bzz-raw://d009503d8bb3bfa01750e8b75a5d3ee511e3db29303e9f323660a74bcc3edded","dweb:/ipfs/QmWvLnnTbLBWrvyeNhb8u35qk82yWoq2a7o5CDCZKRBvjN"],"license":"MPL-2.0"}},"version":1},"ast":{"absolutePath":"src/resolver/profile/LevelResolver.sol","id":61500,"exportedSymbols":{"BaseResolver":[55739],"IERC1155":[47040],"IERC1155Burnable":[58719],"IERC165":[49885],"IERC20":[58727],"IERC20BurnableV1":[58737],"IERC20BurnableV2":[58747],"ILevelResolver":[61071],"ILevelingFormula":[61082],"ISupportsInterface":[55918],"LevelResolver":[61499],"SupportsInterface":[56035]},"nodeType":"SourceUnit","src":"36:6833:119","nodes":[{"id":61084,"nodeType":"PragmaDirective","src":"36:24:119","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":61085,"nodeType":"ImportDirective","src":"62:60:119","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":47041,"symbolAliases":[],"unitAlias":""},{"id":61086,"nodeType":"ImportDirective","src":"123:61:119","nodes":[],"absolutePath":"node_modules/@le7el/web3_crs/contracts/resolver/BaseResolver.sol","file":"@le7el/web3_crs/contracts/resolver/BaseResolver.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":55740,"symbolAliases":[],"unitAlias":""},{"id":61087,"nodeType":"ImportDirective","src":"185:36:119","nodes":[],"absolutePath":"src/interface/IERC20.sol","file":"../../interface/IERC20.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":58728,"symbolAliases":[],"unitAlias":""},{"id":61088,"nodeType":"ImportDirective","src":"222:46:119","nodes":[],"absolutePath":"src/interface/IERC1155Burnable.sol","file":"../../interface/IERC1155Burnable.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":58720,"symbolAliases":[],"unitAlias":""},{"id":61089,"nodeType":"ImportDirective","src":"269:46:119","nodes":[],"absolutePath":"src/interface/IERC20BurnableV1.sol","file":"../../interface/IERC20BurnableV1.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":58738,"symbolAliases":[],"unitAlias":""},{"id":61090,"nodeType":"ImportDirective","src":"316:46:119","nodes":[],"absolutePath":"src/interface/IERC20BurnableV2.sol","file":"../../interface/IERC20BurnableV2.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":58748,"symbolAliases":[],"unitAlias":""},{"id":61091,"nodeType":"ImportDirective","src":"363:32:119","nodes":[],"absolutePath":"src/resolver/profile/ILevelingFormula.sol","file":"./ILevelingFormula.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":61083,"symbolAliases":[],"unitAlias":""},{"id":61092,"nodeType":"ImportDirective","src":"396:30:119","nodes":[],"absolutePath":"src/resolver/profile/ILevelResolver.sol","file":"./ILevelResolver.sol","nameLocation":"-1:-1:-1","scope":61500,"sourceUnit":61072,"symbolAliases":[],"unitAlias":""},{"id":61499,"nodeType":"ContractDefinition","src":"842:6027:119","nodes":[{"id":61100,"nodeType":"VariableDeclaration","src":"984:47:119","nodes":[],"constant":true,"functionSelector":"3186b795","mutability":"constant","name":"DEF_LEVELING_COF1","nameLocation":"1008:17:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61098,"name":"uint256","nodeType":"ElementaryTypeName","src":"984:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":61099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:3:119","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"public"},{"id":61103,"nodeType":"VariableDeclaration","src":"1037:50:119","nodes":[],"constant":true,"functionSelector":"26120e8b","mutability":"constant","name":"DEF_LEVELING_COF2","nameLocation":"1061:17:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1037:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323530303030","id":61102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1081:6:119","typeDescriptions":{"typeIdentifier":"t_rational_250000_by_1","typeString":"int_const 250000"},"value":"250000"},"visibility":"public"},{"id":61106,"nodeType":"VariableDeclaration","src":"1093:48:119","nodes":[],"constant":true,"functionSelector":"308608ad","mutability":"constant","name":"DEF_LEVELING_COF3","nameLocation":"1117:17:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61104,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32303030","id":61105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:4:119","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"visibility":"public"},{"id":61109,"nodeType":"VariableDeclaration","src":"1147:48:119","nodes":[],"constant":true,"functionSelector":"ce5ab5d3","mutability":"constant","name":"DEF_LEVELING_COF4","nameLocation":"1171:17:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61107,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31303030","id":61108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1191:4:119","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"visibility":"public"},{"id":61112,"nodeType":"VariableDeclaration","src":"1202:53:119","nodes":[],"constant":true,"functionSelector":"f65bba57","mutability":"constant","name":"IERC1155_BURNABLE","nameLocation":"1225:17:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":61110,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1202:6:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30786635323938616361","id":61111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1245:10:119","typeDescriptions":{"typeIdentifier":"t_rational_4113140426_by_1","typeString":"int_const 4113140426"},"value":"0xf5298aca"},"visibility":"public"},{"id":61115,"nodeType":"VariableDeclaration","src":"1261:54:119","nodes":[],"constant":true,"functionSelector":"992f100f","mutability":"constant","name":"IERC20_BURNABLE_V1","nameLocation":"1284:18:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":61113,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1261:6:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783739636336373930","id":61114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1305:10:119","typeDescriptions":{"typeIdentifier":"t_rational_2043438992_by_1","typeString":"int_const 2043438992"},"value":"0x79cc6790"},"visibility":"public"},{"id":61118,"nodeType":"VariableDeclaration","src":"1321:54:119","nodes":[],"constant":true,"functionSelector":"c6f67e2d","mutability":"constant","name":"IERC20_BURNABLE_V2","nameLocation":"1344:18:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":61116,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1321:6:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783964633239666163","id":61117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1365:10:119","typeDescriptions":{"typeIdentifier":"t_rational_2646777772_by_1","typeString":"int_const 2646777772"},"value":"0x9dc29fac"},"visibility":"public"},{"id":61127,"nodeType":"StructDefinition","src":"1386:144:119","nodes":[],"canonicalName":"LevelResolver.Project","members":[{"constant":false,"id":61120,"mutability":"mutable","name":"formula","nameLocation":"1418:7:119","nodeType":"VariableDeclaration","scope":61127,"src":"1410:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61119,"name":"address","nodeType":"ElementaryTypeName","src":"1410:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61122,"mutability":"mutable","name":"experienceToken","nameLocation":"1443:15:119","nodeType":"VariableDeclaration","scope":61127,"src":"1435:23:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61121,"name":"address","nodeType":"ElementaryTypeName","src":"1435:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61124,"mutability":"mutable","name":"experienceTokenId","nameLocation":"1476:17:119","nodeType":"VariableDeclaration","scope":61127,"src":"1468:25:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61126,"mutability":"mutable","name":"burnInterface","nameLocation":"1510:13:119","nodeType":"VariableDeclaration","scope":61127,"src":"1503:20:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":61125,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1503:6:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"Project","nameLocation":"1393:7:119","scope":61499,"visibility":"public"},{"id":61133,"nodeType":"VariableDeclaration","src":"1536:71:119","nodes":[],"constant":false,"mutability":"mutable","name":"levelingExperience","nameLocation":"1589:18:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => uint256))"},"typeName":{"id":61132,"keyType":{"id":61128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1544:7:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1536:43:119","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => uint256))"},"valueType":{"id":61131,"keyType":{"id":61129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1561:7:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1553:25:119","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":61130,"name":"uint256","nodeType":"ElementaryTypeName","src":"1570:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"id":61138,"nodeType":"VariableDeclaration","src":"1613:49:119","nodes":[],"constant":false,"functionSelector":"e5ef9a2b","mutability":"mutable","name":"levelingProjects","nameLocation":"1646:16:119","scope":61499,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Project_$61127_storage_$","typeString":"mapping(bytes32 => struct LevelResolver.Project)"},"typeName":{"id":61137,"keyType":{"id":61134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1621:7:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1613:25:119","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Project_$61127_storage_$","typeString":"mapping(bytes32 => struct LevelResolver.Project)"},"valueType":{"id":61136,"nodeType":"UserDefinedTypeName","pathNode":{"id":61135,"name":"Project","nameLocations":["1630:7:119"],"nodeType":"IdentifierPath","referencedDeclaration":61127,"src":"1630:7:119"},"referencedDeclaration":61127,"src":"1630:7:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_storage_ptr","typeString":"struct LevelResolver.Project"}}},"visibility":"public"},{"id":61255,"nodeType":"FunctionDefinition","src":"1963:1260:119","nodes":[],"body":{"id":61254,"nodeType":"Block","src":"2143:1080:119","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61154,"name":"_burnExperienceTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61145,"src":"2161:26:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":61155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2190:1:119","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2161:30:119","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f20616476616e636520696e206c6576656c696e67","id":61157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:24:119","typeDescriptions":{"typeIdentifier":"t_stringliteral_d9f502a12d603dc4721f35cab3037fa801c823a885bf55b1898f3514f8f50864","typeString":"literal_string \"no advance in leveling\""},"value":"no advance in leveling"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d9f502a12d603dc4721f35cab3037fa801c823a885bf55b1898f3514f8f50864","typeString":"literal_string \"no advance in leveling\""}],"id":61153,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2153:7:119","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:65:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61159,"nodeType":"ExpressionStatement","src":"2153:65:119"},{"assignments":[61162],"declarations":[{"constant":false,"id":61162,"mutability":"mutable","name":"_levelingProject","nameLocation":"2243:16:119","nodeType":"VariableDeclaration","scope":61254,"src":"2228:31:119","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_memory_ptr","typeString":"struct LevelResolver.Project"},"typeName":{"id":61161,"nodeType":"UserDefinedTypeName","pathNode":{"id":61160,"name":"Project","nameLocations":["2228:7:119"],"nodeType":"IdentifierPath","referencedDeclaration":61127,"src":"2228:7:119"},"referencedDeclaration":61127,"src":"2228:7:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_storage_ptr","typeString":"struct LevelResolver.Project"}},"visibility":"internal"}],"id":61166,"initialValue":{"baseExpression":{"id":61163,"name":"levelingProjects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61138,"src":"2262:16:119","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Project_$61127_storage_$","typeString":"mapping(bytes32 => struct LevelResolver.Project storage ref)"}},"id":61165,"indexExpression":{"id":61164,"name":"_project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61141,"src":"2279:8:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2262:26:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_storage","typeString":"struct LevelResolver.Project storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2228:60:119"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":61174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61168,"name":"_levelingProject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61162,"src":"2306:16:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_memory_ptr","typeString":"struct LevelResolver.Project memory"}},"id":61169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2323:15:119","memberName":"experienceToken","nodeType":"MemberAccess","referencedDeclaration":61122,"src":"2306:32:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":61172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2350:1:119","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2342:7:119","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61170,"name":"address","nodeType":"ElementaryTypeName","src":"2342:7:119","typeDescriptions":{}}},"id":61173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2342:10:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2306:46:119","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e726567697374657265642070726f6a656374","id":61175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2354:22:119","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dd25f5f5a78e1f46e7eb9d6f9908c52b75a2f2c644aa14b95c343c06b05d149","typeString":"literal_string \"unregistered project\""},"value":"unregistered project"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dd25f5f5a78e1f46e7eb9d6f9908c52b75a2f2c644aa14b95c343c06b05d149","typeString":"literal_string \"unregistered project\""}],"id":61167,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2298:7:119","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2298:79:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61177,"nodeType":"ExpressionStatement","src":"2298:79:119"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":61181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61178,"name":"_levelingProject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61162,"src":"2392:16:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_memory_ptr","typeString":"struct LevelResolver.Project memory"}},"id":61179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2409:13:119","memberName":"burnInterface","nodeType":"MemberAccess","referencedDeclaration":61126,"src":"2392:30:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":61180,"name":"IERC1155_BURNABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61112,"src":"2426:17:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2392:51:119","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":61198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61195,"name":"_levelingProject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61162,"src":"2611:16:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_memory_ptr","typeString":"struct LevelResolver.Project memory"}},"id":61196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2628:13:119","memberName":"burnInterface","nodeType":"MemberAccess","referencedDeclaration":61126,"src":"2611:30:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":61197,"name":"IERC20_BURNABLE_V2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61118,"src":"2645:18:119","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2611:52:119","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":61220,"nodeType":"Block","src":"2791:124:119","statements":[{"expression":{"arguments":[{"expression":{"id":61215,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2865:3:119","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":61216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2869:6:119","memberName":"sender","nodeType":"MemberAccess","src":"2865:10:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61217,"name":"_burnExperienceTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61145,"src":"2877:26:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":61211,"name":"_levelingProject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61162,"src":"2822:16:119","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$61127_memory_ptr","typeString":"struct LevelResolver.Project memory"}},"id":61212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2839:15:119","memberName":"experienceToken","nodeType":"MemberAccess","referencedDeclaration":61122,"src":"2822:32:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61210,"name":"IERC20BurnableV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58737,"src":"2805:16:119","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Bu