diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index e44b518..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index fd72422..aa7f7ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.DS_Store + # Logs logs *.log diff --git a/abi/DYAD.json b/abi/DYAD.json index dc5d057..76a0026 100644 --- a/abi/DYAD.json +++ b/abi/DYAD.json @@ -30,6 +30,25 @@ "name": "Approval", "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": [ @@ -55,6 +74,19 @@ "name": "Transfer", "type": "event" }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -234,25 +266,44 @@ }, { "inputs": [], - "name": "minter", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", "type": "address" } ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "name", + "name": "owner", "outputs": [ { - "internalType": "string", + "internalType": "address", "name": "", - "type": "string" + "type": "address" } ], "stateMutability": "view", @@ -262,11 +313,48 @@ "inputs": [ { "internalType": "address", - "name": "newMinter", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" } ], - "name": "setMinter", + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -349,19 +437,71 @@ ], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ], "bytecode": { - "object": "0x60806040523480156200001157600080fd5b506040518060400160405280600f81526020016e222ca0a21029ba30b13632b1b7b4b760891b815250604051806040016040528060048152602001631116505160e21b815250816003908162000068919062000137565b50600462000077828262000137565b5050600580546001600160a01b031916331790555062000203565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000bd57607f821691505b602082108103620000de57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200013257600081815260208120601f850160051c810160208610156200010d5750805b601f850160051c820191505b818110156200012e5782815560010162000119565b5050505b505050565b81516001600160401b0381111562000153576200015362000092565b6200016b81620001648454620000a8565b84620000e4565b602080601f831160018114620001a357600084156200018a5750858301515b600019600386901b1c1916600185901b1785556200012e565b600085815260208120601f198616915b82811015620001d457888601518255948401946001909101908401620001b3565b5085821015620001f35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c2280620002136000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806342966c6811610097578063a457c2d711610066578063a457c2d714610224578063a9059cbb14610237578063dd62ed3e1461024a578063fca3b5aa1461025d57600080fd5b806342966c68146101cd57806370a08231146101e057806379cc67901461020957806395d89b411461021c57600080fd5b806323b872dd116100d357806323b872dd14610183578063313ce5671461019657806339509351146101a557806340c10f19146101b857600080fd5b806306fdde03146101055780630754617214610123578063095ea7b31461014e57806318160ddd14610171575b600080fd5b61010d610270565b60405161011a9190610a53565b60405180910390f35b600554610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b61016161015c366004610abd565b610302565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610161610191366004610ae7565b61031c565b6040516012815260200161011a565b6101616101b3366004610abd565b610340565b6101cb6101c6366004610abd565b610362565b005b6101cb6101db366004610b23565b6103c6565b6101756101ee366004610b3c565b6001600160a01b031660009081526020819052604090205490565b6101cb610217366004610abd565b6103d3565b61010d6103e8565b610161610232366004610abd565b6103f7565b610161610245366004610abd565b610472565b610175610258366004610b5e565b610480565b6101cb61026b366004610b3c565b6104ab565b60606003805461027f90610b91565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610b91565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b600033610310818585610527565b60019150505b92915050565b60003361032a85828561064c565b6103358585856106c6565b506001949350505050565b6000336103108185856103538383610480565b61035d9190610bcb565b610527565b6005546001600160a01b031633146103b85760405162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b881b5a5b9d60621b60448201526064015b60405180910390fd5b6103c2828261086a565b5050565b6103d03382610929565b50565b6103de82338361064c565b6103c28282610929565b60606004805461027f90610b91565b600033816104058286610480565b9050838110156104655760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103af565b6103358286868403610527565b6000336103108185856106c6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146105055760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206d696e7465722063616e20736574206d696e74657200000000000060448201526064016103af565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105895760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006106588484610480565b905060001981146106c057818110156106b35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106c08484848403610527565b50505050565b6001600160a01b03831661072a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b03821661078c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156108045760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106c0565b6001600160a01b0382166108c05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103af565b80600260008282546108d29190610bcb565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166109895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103af565b6001600160a01b038216600090815260208190526040902054818110156109fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103af565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161063f565b600060208083528351808285015260005b81811015610a8057858101830151858201604001528201610a64565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ab857600080fd5b919050565b60008060408385031215610ad057600080fd5b610ad983610aa1565b946020939093013593505050565b600080600060608486031215610afc57600080fd5b610b0584610aa1565b9250610b1360208501610aa1565b9150604084013590509250925092565b600060208284031215610b3557600080fd5b5035919050565b600060208284031215610b4e57600080fd5b610b5782610aa1565b9392505050565b60008060408385031215610b7157600080fd5b610b7a83610aa1565b9150610b8860208401610aa1565b90509250929050565b600181811c90821680610ba557607f821691505b602082108103610bc557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561031657634e487b7160e01b600052601160045260246000fdfea26469706673582212201ecac50b956c29bfda65e9a2729d0e8f43fef29452d05c9ac48063a67b39c0ad64736f6c63430008110033", - "sourceMap": "190:585:29:-:0;;;258:77;;;;;;;;;;1976:113:7;;;;;;;;;;;;;-1:-1:-1;;;1976:113:7;;;;;;;;;;;;;;;;-1:-1:-1;;;1976:113:7;;;2050:5;2042;:13;;;;;;:::i;:::-;-1:-1:-1;2065:7:7;:17;2075:7;2065;:17;:::i;:::-;-1:-1:-1;;311:6:29::1;:19:::0;;-1:-1:-1;;;;;;311:19:29::1;320:10;311:19;::::0;;-1:-1:-1;190:585:29;;14:127:37;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:37;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:37;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:37;;;2580:26;2531:89;-1:-1:-1;;1335:1:37;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:37;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:37;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:37;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:37:o;:::-;190:585:29;;;;;;", + "object": "0x6101406040523480156200001257600080fd5b506040518060400160405280600f81526020016e222ca0a21029ba30b13632b1b7b4b760891b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600f81526020016e222ca0a21029ba30b13632b1b7b4b760891b815250604051806040016040528060048152602001631116505160e21b815250620000b5620000af6200016e60201b60201c565b62000172565b6004620000c3838262000267565b506005620000d2828262000267565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c0526101205250620003339350505050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ed57607f821691505b6020821081036200020e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026257600081815260208120601f850160051c810160208610156200023d5750805b601f850160051c820191505b818110156200025e5782815560010162000249565b5050505b505050565b81516001600160401b03811115620002835762000283620001c2565b6200029b81620002948454620001d8565b8462000214565b602080601f831160018114620002d35760008415620002ba5750858301515b600019600386901b1c1916600185901b1785556200025e565b600085815260208120601f198616915b828110156200030457888601518255948401946001909101908401620002e3565b5085821015620003235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161010051610120516112d5620003836000396000610aa301526000610af201526000610acd01526000610a2601526000610a5001526000610a7a01526112d56000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d714610263578063a9059cbb14610276578063d505accf14610289578063dd62ed3e1461029c578063f2fde38b146102af57600080fd5b8063715018a61461021257806379cc67901461021a5780637ecebe001461022d5780638da5cb5b1461024057806395d89b411461025b57600080fd5b80633644e515116100f45780633644e515146101a657806339509351146101ae57806340c10f19146101c157806342966c68146101d657806370a08231146101e957600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b6101396102c2565b6040516101469190611083565b60405180910390f35b61016261015d3660046110ed565b610354565b6040519015158152602001610146565b6003545b604051908152602001610146565b610162610192366004611117565b61036e565b60405160128152602001610146565b610176610392565b6101626101bc3660046110ed565b6103a1565b6101d46101cf3660046110ed565b6103c3565b005b6101d46101e4366004611153565b6103d9565b6101766101f736600461116c565b6001600160a01b031660009081526001602052604090205490565b6101d46103e6565b6101d46102283660046110ed565b6103fa565b61017661023b36600461116c565b61040f565b6000546040516001600160a01b039091168152602001610146565b61013961042d565b6101626102713660046110ed565b61043c565b6101626102843660046110ed565b6104bc565b6101d461029736600461118e565b6104ca565b6101766102aa366004611201565b61062e565b6101d46102bd36600461116c565b610659565b6060600480546102d190611234565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd90611234565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b5050505050905090565b6000336103628185856106cf565b60019150505b92915050565b60003361037c8582856107f4565b61038785858561086e565b506001949350505050565b600061039c610a19565b905090565b6000336103628185856103b4838361062e565b6103be9190611268565b6106cf565b6103cb610b40565b6103d58282610b9a565b5050565b6103e33382610c5b565b50565b6103ee610b40565b6103f86000610d87565b565b6104058233836107f4565b6103d58282610c5b565b6001600160a01b038116600090815260066020526040812054610368565b6060600580546102d190611234565b6000338161044a828661062e565b9050838110156104af5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61038782868684036106cf565b60003361036281858561086e565b8342111561051a5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104a6565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105498c610dd7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105a482610dff565b905060006105b482878787610e4d565b9050896001600160a01b0316816001600160a01b0316146106175760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104a6565b6106228a8a8a6106cf565b50505050505050505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610661610b40565b6001600160a01b0381166106c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a6565b6103e381610d87565b6001600160a01b0383166107315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a6565b6001600160a01b0382166107925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610800848461062e565b90506000198114610868578181101561085b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104a6565b61086884848484036106cf565b50505050565b6001600160a01b0383166108d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a6565b6001600160a01b0382166109345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a6565b6001600160a01b038316600090815260016020526040902054818110156109ac5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104a6565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a0c9086815260200190565b60405180910390a3610868565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610a7257507f000000000000000000000000000000000000000000000000000000000000000046145b15610a9c57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000546001600160a01b031633146103f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a6565b6001600160a01b038216610bf05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a6565b8060036000828254610c029190611268565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610cbb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104a6565b6001600160a01b03821660009081526001602052604090205481811015610d2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104a6565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016107e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b6000610368610e0c610a19565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610e5e87878787610e75565b91509150610e6b81610f39565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610eac5750600090506003610f30565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610f00573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f2957600060019250925050610f30565b9150600090505b94509492505050565b6000816004811115610f4d57610f4d611289565b03610f555750565b6001816004811115610f6957610f69611289565b03610fb65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104a6565b6002816004811115610fca57610fca611289565b036110175760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104a6565b600381600481111561102b5761102b611289565b036103e35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104a6565b600060208083528351808285015260005b818110156110b057858101830151858201604001528201611094565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146110e857600080fd5b919050565b6000806040838503121561110057600080fd5b611109836110d1565b946020939093013593505050565b60008060006060848603121561112c57600080fd5b611135846110d1565b9250611143602085016110d1565b9150604084013590509250925092565b60006020828403121561116557600080fd5b5035919050565b60006020828403121561117e57600080fd5b611187826110d1565b9392505050565b600080600080600080600060e0888a0312156111a957600080fd5b6111b2886110d1565b96506111c0602089016110d1565b95506040880135945060608801359350608088013560ff811681146111e457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561121457600080fd5b61121d836110d1565b915061122b602084016110d1565b90509250929050565b600181811c9082168061124857607f821691505b602082108103610df957634e487b7160e01b600052602260045260246000fd5b8082018082111561036857634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220270c7df6632c254ab95dbd2ca42e707dd0264f2f95696738260afe07c036367964736f6c63430008110033", + "sourceMap": "322:253:37:-:0;;;387:93;;;;;;;;;;1829:52:13;;;;;;;;;;;;;-1:-1:-1;;;1829:52:13;;;1868:4;2384:602:27;;;;;;;;;;;;;-1:-1:-1;;;2384:602:27;;;1976:113:9;;;;;;;;;;;;;-1:-1:-1;;;1976:113:9;;;;;;;;;;;;;;;;-1:-1:-1;;;1976:113:9;;;936:32:7;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;2042:5:9;:13;2050:5;2042;:13;:::i;:::-;-1:-1:-1;2065:7:9;:17;2075:7;2065;:17;:::i;:::-;-1:-1:-1;;2470:22:27;;;;;;;;;;2526:25;;;;;;2707;;;;2742:31;;;;2802:13;2783:32;;;;-1:-1:-1;3562:73:27;;2580:117;3562:73;;;2994:25:52;;;3035:18;;;3028:34;;;-1:-1:-1;3078:18:52;;3071:34;;;3121:18;;;3114:34;;;;3629:4:27;3164:19:52;;;3157:61;3562:73:27;;;;;;;;;;2966:19:52;;3562:73:27;;3552:84;;;;;;;;2470:22;;-1:-1:-1;2526:25:27;2580:117;2825:85;;2943:4;2920:28;;2958:21;;-1:-1:-1;322:253:37;;-1:-1:-1;;;;322:253:37;640:96:23;719:10;;640:96::o;2433:187:7:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:127:52:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:52;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:52;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:52;;;2580:26;2531:89;-1:-1:-1;;1335:1:52;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:52;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:52;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:52;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:52:o;2735:489::-;322:253:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c806342966c6811610097578063a457c2d711610066578063a457c2d714610224578063a9059cbb14610237578063dd62ed3e1461024a578063fca3b5aa1461025d57600080fd5b806342966c68146101cd57806370a08231146101e057806379cc67901461020957806395d89b411461021c57600080fd5b806323b872dd116100d357806323b872dd14610183578063313ce5671461019657806339509351146101a557806340c10f19146101b857600080fd5b806306fdde03146101055780630754617214610123578063095ea7b31461014e57806318160ddd14610171575b600080fd5b61010d610270565b60405161011a9190610a53565b60405180910390f35b600554610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b61016161015c366004610abd565b610302565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610161610191366004610ae7565b61031c565b6040516012815260200161011a565b6101616101b3366004610abd565b610340565b6101cb6101c6366004610abd565b610362565b005b6101cb6101db366004610b23565b6103c6565b6101756101ee366004610b3c565b6001600160a01b031660009081526020819052604090205490565b6101cb610217366004610abd565b6103d3565b61010d6103e8565b610161610232366004610abd565b6103f7565b610161610245366004610abd565b610472565b610175610258366004610b5e565b610480565b6101cb61026b366004610b3c565b6104ab565b60606003805461027f90610b91565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610b91565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b600033610310818585610527565b60019150505b92915050565b60003361032a85828561064c565b6103358585856106c6565b506001949350505050565b6000336103108185856103538383610480565b61035d9190610bcb565b610527565b6005546001600160a01b031633146103b85760405162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b881b5a5b9d60621b60448201526064015b60405180910390fd5b6103c2828261086a565b5050565b6103d03382610929565b50565b6103de82338361064c565b6103c28282610929565b60606004805461027f90610b91565b600033816104058286610480565b9050838110156104655760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103af565b6103358286868403610527565b6000336103108185856106c6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146105055760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206d696e7465722063616e20736574206d696e74657200000000000060448201526064016103af565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105895760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006106588484610480565b905060001981146106c057818110156106b35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106c08484848403610527565b50505050565b6001600160a01b03831661072a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b03821661078c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156108045760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106c0565b6001600160a01b0382166108c05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103af565b80600260008282546108d29190610bcb565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166109895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103af565b6001600160a01b038216600090815260208190526040902054818110156109fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103af565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161063f565b600060208083528351808285015260005b81811015610a8057858101830151858201604001528201610a64565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ab857600080fd5b919050565b60008060408385031215610ad057600080fd5b610ad983610aa1565b946020939093013593505050565b600080600060608486031215610afc57600080fd5b610b0584610aa1565b9250610b1360208501610aa1565b9150604084013590509250925092565b600060208284031215610b3557600080fd5b5035919050565b600060208284031215610b4e57600080fd5b610b5782610aa1565b9392505050565b60008060408385031215610b7157600080fd5b610b7a83610aa1565b9150610b8860208401610aa1565b90509250929050565b600181811c90821680610ba557607f821691505b602082108103610bc557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561031657634e487b7160e01b600052601160045260246000fdfea26469706673582212201ecac50b956c29bfda65e9a2729d0e8f43fef29452d05c9ac48063a67b39c0ad64736f6c63430008110033", - "sourceMap": "190:585:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;232:21:29;;;;;-1:-1:-1;;;;;232:21:29;;;;;;-1:-1:-1;;;;;731:32:37;;;713:51;;701:2;686:18;232:21:29;567:203:37;4431:197:7;;;;;;:::i;:::-;;:::i;:::-;;;1377:14:37;;1370:22;1352:41;;1340:2;1325:18;4431:197:7;1212:187:37;3242:106:7;3329:12;;3242:106;;;1550:25:37;;;1538:2;1523:18;3242:106:7;1404:177:37;5190:286:7;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;2061:36:37;;2049:2;2034:18;3091:91:7;1919:184:37;5871:234:7;;;;;;:::i;:::-;;:::i;640:133:29:-;;;;;;:::i;:::-;;:::i;:::-;;578:89:9;;;;;;:::i;:::-;;:::i;3406:125:7:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:7;3480:7;3506:18;;;;;;;;;;;;3406:125;973:161:9;;;;;;:::i;:::-;;:::i;2365:102:7:-;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;339:297:29:-;;;;;;:::i;:::-;;:::i;2154:98:7:-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:18;4568:32:7;719:10:18;4584:7:7;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;;:::o;5190:286::-;5317:4;719:10:18;5373:38:7;5389:4;719:10:18;5404:6:7;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:7;;5190:286;-1:-1:-1;;;;5190:286:7:o;5871:234::-;5959:4;719:10:18;6013:64:7;719:10:18;6029:7:7;6066:10;6038:25;719:10:18;6029:7:7;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;640:133:29:-;714:6;;-1:-1:-1;;;;;714:6:29;700:10;:20;692:53;;;;-1:-1:-1;;;692:53:29;;3563:2:37;692:53:29;;;3545:21:37;3602:2;3582:18;;;3575:30;-1:-1:-1;;;3621:18:37;;;3614:50;3681:18;;692:53:29;;;;;;;;;751:17;757:2;761:6;751:5;:17::i;:::-;640:133;;:::o;578:89:9:-;633:27;719:10:18;653:6:9;633:5;:27::i;:::-;578:89;:::o;973:161::-;1049:46;1065:7;719:10:18;1088:6:9;1049:15;:46::i;:::-;1105:22;1111:7;1120:6;1105:5;:22::i;2365:102:7:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:18;6685:4:7;6766:25;719:10:18;6783:7:7;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:7;;3912:2:37;6801:85:7;;;3894:21:37;3951:2;3931:18;;;3924:30;3990:34;3970:18;;;3963:62;-1:-1:-1;;;4041:18:37;;;4034:35;4086:19;;6801:85:7;3710:401:37;6801:85:7;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:18;3860:28:7;719:10:18;3877:2:7;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:7;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;339:297:29:-;570:6;;-1:-1:-1;;;;;570:6:29;556:10;:20;548:59;;;;-1:-1:-1;;;548:59:29;;4318:2:37;548:59:29;;;4300:21:37;4357:2;4337:18;;;4330:30;4396:28;4376:18;;;4369:56;4442:18;;548:59:29;4116:350:37;548:59:29;613:6;:18;;-1:-1:-1;;;;;;613:18:29;-1:-1:-1;;;;;613:18:29;;;;;;;;;;339:297::o;10504:370:7:-;-1:-1:-1;;;;;10635:19:7;;10627:68;;;;-1:-1:-1;;;10627:68:7;;4673:2:37;10627:68:7;;;4655:21:37;4712:2;4692:18;;;4685:30;4751:34;4731:18;;;4724:62;-1:-1:-1;;;4802:18:37;;;4795:34;4846:19;;10627:68:7;4471:400:37;10627:68:7;-1:-1:-1;;;;;10713:21:7;;10705:68;;;;-1:-1:-1;;;10705:68:7;;5078:2:37;10705:68:7;;;5060:21:37;5117:2;5097:18;;;5090:30;5156:34;5136:18;;;5129:62;-1:-1:-1;;;5207:18:37;;;5200:32;5249:19;;10705:68:7;4876:398:37;10705:68:7;-1:-1:-1;;;;;10784:18:7;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1550:25:37;;;10835:32:7;;1523:18:37;10835:32:7;;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:7;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:7;;5481:2:37;11404:68:7;;;5463:21:37;5520:2;5500:18;;;5493:30;5559:31;5539:18;;;5532:59;5608:18;;11404:68:7;5279:353:37;11404:68:7;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:7;;7591:68;;;;-1:-1:-1;;;7591:68:7;;5839:2:37;7591:68:7;;;5821:21:37;5878:2;5858:18;;;5851:30;5917:34;5897:18;;;5890:62;-1:-1:-1;;;5968:18:37;;;5961:35;6013:19;;7591:68:7;5637:401:37;7591:68:7;-1:-1:-1;;;;;7677:16:7;;7669:64;;;;-1:-1:-1;;;7669:64:7;;6245:2:37;7669:64:7;;;6227:21:37;6284:2;6264:18;;;6257:30;6323:34;6303:18;;;6296:62;-1:-1:-1;;;6374:18:37;;;6367:33;6417:19;;7669:64:7;6043:399:37;7669:64:7;-1:-1:-1;;;;;7815:15:7;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:7;;6649:2:37;7840:72:7;;;6631:21:37;6688:2;6668:18;;;6661:30;6727:34;6707:18;;;6700:62;-1:-1:-1;;;6778:18:37;;;6771:36;6824:19;;7840:72:7;6447:402:37;7840:72:7;-1:-1:-1;;;;;7946:15:7;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1550:25:37;;;8161:13:7;;8210:26;;1523:18:37;8210:26:7;;;;;;;8247:37;9422:659;8567:535;-1:-1:-1;;;;;8650:21:7;;8642:65;;;;-1:-1:-1;;;8642:65:7;;7056:2:37;8642:65:7;;;7038:21:37;7095:2;7075:18;;;7068:30;7134:33;7114:18;;;7107:61;7185:18;;8642:65:7;6854:355:37;8642:65:7;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:7;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1550:25:37;;;8999:37:7;;1523:18:37;8999:37:7;;;;;;;640:133:29;;:::o;9422:659:7:-;-1:-1:-1;;;;;9505:21:7;;9497:67;;;;-1:-1:-1;;;9497:67:7;;7416:2:37;9497:67:7;;;7398:21:37;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:37;;;7538:31;7586:19;;9497:67:7;7214:397:37;9497:67:7;-1:-1:-1;;;;;9660:18:7;;9635:22;9660:18;;;;;;;;;;;9696:24;;;;9688:71;;;;-1:-1:-1;;;9688:71:7;;7818:2:37;9688:71:7;;;7800:21:37;7857:2;7837:18;;;7830:30;7896:34;7876:18;;;7869:62;-1:-1:-1;;;7947:18:37;;;7940:32;7989:19;;9688:71:7;7616:398:37;9688:71:7;-1:-1:-1;;;;;9793:18:7;;:9;:18;;;;;;;;;;;9814:23;;;9793:44;;9930:12;:22;;;;;;;9978:37;1550:25:37;;;9793:9:7;;:18;9978:37;;1523:18:37;9978:37:7;1404:177:37;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;775:173::-;843:20;;-1:-1:-1;;;;;892:31:37;;882:42;;872:70;;938:1;935;928:12;872:70;775:173;;;:::o;953:254::-;1021:6;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1121:29;1140:9;1121:29;:::i;:::-;1111:39;1197:2;1182:18;;;;1169:32;;-1:-1:-1;;;953:254:37:o;1586:328::-;1663:6;1671;1679;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;1771:29;1790:9;1771:29;:::i;:::-;1761:39;;1819:38;1853:2;1842:9;1838:18;1819:38;:::i;:::-;1809:48;;1904:2;1893:9;1889:18;1876:32;1866:42;;1586:328;;;;;:::o;2108:180::-;2167:6;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;-1:-1:-1;2259:23:37;;2108:180;-1:-1:-1;2108:180:37:o;2293:186::-;2352:6;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;2293:186;-1:-1:-1;;;2293:186:37:o;2484:260::-;2552:6;2560;2613:2;2601:9;2592:7;2588:23;2584:32;2581:52;;;2629:1;2626;2619:12;2581:52;2652:29;2671:9;2652:29;:::i;:::-;2642:39;;2700:38;2734:2;2723:9;2719:18;2700:38;:::i;:::-;2690:48;;2484:260;;;;;:::o;2749:380::-;2828:1;2824:12;;;;2871;;;2892:61;;2946:4;2938:6;2934:17;2924:27;;2892:61;2999:2;2991:6;2988:14;2968:18;2965:38;2962:161;;3045:10;3040:3;3036:20;3033:1;3026:31;3080:4;3077:1;3070:15;3108:4;3105:1;3098:15;2962:161;;2749:380;;;:::o;3134:222::-;3199:9;;;3220:10;;;3217:133;;;3272:10;3267:3;3263:20;3260:1;3253:31;3307:4;3304:1;3297:15;3335:4;3332:1;3325:15", - "linkReferences": {} + "object": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d714610263578063a9059cbb14610276578063d505accf14610289578063dd62ed3e1461029c578063f2fde38b146102af57600080fd5b8063715018a61461021257806379cc67901461021a5780637ecebe001461022d5780638da5cb5b1461024057806395d89b411461025b57600080fd5b80633644e515116100f45780633644e515146101a657806339509351146101ae57806340c10f19146101c157806342966c68146101d657806370a08231146101e957600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b6101396102c2565b6040516101469190611083565b60405180910390f35b61016261015d3660046110ed565b610354565b6040519015158152602001610146565b6003545b604051908152602001610146565b610162610192366004611117565b61036e565b60405160128152602001610146565b610176610392565b6101626101bc3660046110ed565b6103a1565b6101d46101cf3660046110ed565b6103c3565b005b6101d46101e4366004611153565b6103d9565b6101766101f736600461116c565b6001600160a01b031660009081526001602052604090205490565b6101d46103e6565b6101d46102283660046110ed565b6103fa565b61017661023b36600461116c565b61040f565b6000546040516001600160a01b039091168152602001610146565b61013961042d565b6101626102713660046110ed565b61043c565b6101626102843660046110ed565b6104bc565b6101d461029736600461118e565b6104ca565b6101766102aa366004611201565b61062e565b6101d46102bd36600461116c565b610659565b6060600480546102d190611234565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd90611234565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b5050505050905090565b6000336103628185856106cf565b60019150505b92915050565b60003361037c8582856107f4565b61038785858561086e565b506001949350505050565b600061039c610a19565b905090565b6000336103628185856103b4838361062e565b6103be9190611268565b6106cf565b6103cb610b40565b6103d58282610b9a565b5050565b6103e33382610c5b565b50565b6103ee610b40565b6103f86000610d87565b565b6104058233836107f4565b6103d58282610c5b565b6001600160a01b038116600090815260066020526040812054610368565b6060600580546102d190611234565b6000338161044a828661062e565b9050838110156104af5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61038782868684036106cf565b60003361036281858561086e565b8342111561051a5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104a6565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105498c610dd7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105a482610dff565b905060006105b482878787610e4d565b9050896001600160a01b0316816001600160a01b0316146106175760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104a6565b6106228a8a8a6106cf565b50505050505050505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610661610b40565b6001600160a01b0381166106c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a6565b6103e381610d87565b6001600160a01b0383166107315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a6565b6001600160a01b0382166107925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610800848461062e565b90506000198114610868578181101561085b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104a6565b61086884848484036106cf565b50505050565b6001600160a01b0383166108d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a6565b6001600160a01b0382166109345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a6565b6001600160a01b038316600090815260016020526040902054818110156109ac5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104a6565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a0c9086815260200190565b60405180910390a3610868565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610a7257507f000000000000000000000000000000000000000000000000000000000000000046145b15610a9c57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000546001600160a01b031633146103f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a6565b6001600160a01b038216610bf05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a6565b8060036000828254610c029190611268565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610cbb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104a6565b6001600160a01b03821660009081526001602052604090205481811015610d2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104a6565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016107e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b6000610368610e0c610a19565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610e5e87878787610e75565b91509150610e6b81610f39565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610eac5750600090506003610f30565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610f00573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f2957600060019250925050610f30565b9150600090505b94509492505050565b6000816004811115610f4d57610f4d611289565b03610f555750565b6001816004811115610f6957610f69611289565b03610fb65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104a6565b6002816004811115610fca57610fca611289565b036110175760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104a6565b600381600481111561102b5761102b611289565b036103e35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104a6565b600060208083528351808285015260005b818110156110b057858101830151858201604001528201611094565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146110e857600080fd5b919050565b6000806040838503121561110057600080fd5b611109836110d1565b946020939093013593505050565b60008060006060848603121561112c57600080fd5b611135846110d1565b9250611143602085016110d1565b9150604084013590509250925092565b60006020828403121561116557600080fd5b5035919050565b60006020828403121561117e57600080fd5b611187826110d1565b9392505050565b600080600080600080600060e0888a0312156111a957600080fd5b6111b2886110d1565b96506111c0602089016110d1565b95506040880135945060608801359350608088013560ff811681146111e457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561121457600080fd5b61121d836110d1565b915061122b602084016110d1565b90509250929050565b600181811c9082168061124857607f821691505b602082108103610df957634e487b7160e01b600052602260045260246000fd5b8082018082111561036857634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220270c7df6632c254ab95dbd2ca42e707dd0264f2f95696738260afe07c036367964736f6c63430008110033", + "sourceMap": "322:253:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:52;;1162:22;1144:41;;1132:2;1117:18;4431:197:9;1004:187:52;3242:106:9;3329:12;;3242:106;;;1342:25:52;;;1330:2;1315:18;3242:106:9;1196:177:52;5190:286:9;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1853:36:52;;1841:2;1826:18;3091:91:9;1711:184:52;2879:113:13;;;:::i;5871:234:9:-;;;;;;:::i;:::-;;:::i;484:89:37:-;;;;;;:::i;:::-;;:::i;:::-;;578::11;;;;;;:::i;:::-;;:::i;3406:125:9:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:9;3480:7;3506:18;;;:9;:18;;;;;;;3406:125;1831:101:7;;;:::i;973:161:11:-;;;;;;:::i;:::-;;:::i;2629:126:13:-;;;;;;:::i;:::-;;:::i;1201:85:7:-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:7;;;2604:51:52;;2592:2;2577:18;1201:85:7;2458:203:52;2365:102:9;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;1942:626:13:-;;;;;;:::i;:::-;;:::i;3974:149:9:-;;;;;;:::i;:::-;;:::i;2081:198:7:-;;;;;;:::i;:::-;;:::i;2154:98:9:-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:23;4568:32:9;719:10:23;4584:7:9;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;;:::o;5190:286::-;5317:4;719:10:23;5373:38:9;5389:4;719:10:23;5404:6:9;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:9;;5190:286;-1:-1:-1;;;;5190:286:9:o;2879:113:13:-;2939:7;2965:20;:18;:20::i;:::-;2958:27;;2879:113;:::o;5871:234:9:-;5959:4;719:10:23;6013:64:9;719:10:23;6029:7:9;6066:10;6038:25;719:10:23;6029:7:9;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;484:89:37:-;1094:13:7;:11;:13::i;:::-;551:17:37::1;557:2;561:6;551:5;:17::i;:::-;484:89:::0;;:::o;578::11:-;633:27;719:10:23;653:6:11;633:5;:27::i;:::-;578:89;:::o;1831:101:7:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;973:161:11:-;1049:46;1065:7;719:10:23;1088:6:11;1049:15;:46::i;:::-;1105:22;1111:7;1120:6;1105:5;:22::i;2629:126:13:-;-1:-1:-1;;;;;2724:14:13;;2698:7;2724:14;;;:7;:14;;;;;918::24;2724:24:13;827:112:24;2365:102:9;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:23;6685:4:9;6766:25;719:10:23;6783:7:9;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:9;;4443:2:52;6801:85:9;;;4425:21:52;4482:2;4462:18;;;4455:30;4521:34;4501:18;;;4494:62;-1:-1:-1;;;4572:18:52;;;4565:35;4617:19;;6801:85:9;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:23;3860:28:9;719:10:23;3877:2:9;3881:6;3860:9;:28::i;1942:626:13:-;2177:8;2158:15;:27;;2150:69;;;;-1:-1:-1;;;2150:69:13;;4849:2:52;2150:69:13;;;4831:21:52;4888:2;4868:18;;;4861:30;4927:31;4907:18;;;4900:59;4976:18;;2150:69:13;4647:353:52;2150:69:13;2230:18;1137:95;2290:5;2297:7;2306:5;2313:16;2323:5;2313:9;:16::i;:::-;2261:79;;;;;;5292:25:52;;;;-1:-1:-1;;;;;5391:15:52;;;5371:18;;;5364:43;5443:15;;;;5423:18;;;5416:43;5475:18;;;5468:34;5518:19;;;5511:35;5562:19;;;5555:35;;;5264:19;;2261:79:13;;;;;;;;;;;;2251:90;;;;;;2230:111;;2352:12;2367:28;2384:10;2367:16;:28::i;:::-;2352:43;;2406:14;2423:28;2437:4;2443:1;2446;2449;2423:13;:28::i;:::-;2406:45;;2479:5;-1:-1:-1;;;;;2469:15:13;:6;-1:-1:-1;;;;;2469:15:13;;2461:58;;;;-1:-1:-1;;;2461:58:13;;5803:2:52;2461:58:13;;;5785:21:52;5842:2;5822:18;;;5815:30;5881:32;5861:18;;;5854:60;5931:18;;2461:58:13;5601:354:52;2461:58:13;2530:31;2539:5;2546:7;2555:5;2530:8;:31::i;:::-;2140:428;;;1942:626;;;;;;;:::o;3974:149:9:-;-1:-1:-1;;;;;4089:18:9;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;2081:198:7:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:7;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:7;;6162:2:52;2161:73:7::1;::::0;::::1;6144:21:52::0;6201:2;6181:18;;;6174:30;6240:34;6220:18;;;6213:62;-1:-1:-1;;;6291:18:52;;;6284:36;6337:19;;2161:73:7::1;5960:402:52::0;2161:73:7::1;2244:28;2263:8;2244:18;:28::i;10504:370:9:-:0;-1:-1:-1;;;;;10635:19:9;;10627:68;;;;-1:-1:-1;;;10627:68:9;;6569:2:52;10627:68:9;;;6551:21:52;6608:2;6588:18;;;6581:30;6647:34;6627:18;;;6620:62;-1:-1:-1;;;6698:18:52;;;6691:34;6742:19;;10627:68:9;6367:400:52;10627:68:9;-1:-1:-1;;;;;10713:21:9;;10705:68;;;;-1:-1:-1;;;10705:68:9;;6974:2:52;10705:68:9;;;6956:21:52;7013:2;6993:18;;;6986:30;7052:34;7032:18;;;7025:62;-1:-1:-1;;;7103:18:52;;;7096:32;7145:19;;10705:68:9;6772:398:52;10705:68:9;-1:-1:-1;;;;;10784:18:9;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1342:25:52;;;10835:32:9;;1315:18:52;10835:32:9;;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:9;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:9;;7377:2:52;11404:68:9;;;7359:21:52;7416:2;7396:18;;;7389:30;7455:31;7435:18;;;7428:59;7504:18;;11404:68:9;7175:353:52;11404:68:9;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:9;;7591:68;;;;-1:-1:-1;;;7591:68:9;;7735:2:52;7591:68:9;;;7717:21:52;7774:2;7754:18;;;7747:30;7813:34;7793:18;;;7786:62;-1:-1:-1;;;7864:18:52;;;7857:35;7909:19;;7591:68:9;7533:401:52;7591:68:9;-1:-1:-1;;;;;7677:16:9;;7669:64;;;;-1:-1:-1;;;7669:64:9;;8141:2:52;7669:64:9;;;8123:21:52;8180:2;8160:18;;;8153:30;8219:34;8199:18;;;8192:62;-1:-1:-1;;;8270:18:52;;;8263:33;8313:19;;7669:64:9;7939:399:52;7669:64:9;-1:-1:-1;;;;;7815:15:9;;7793:19;7815:15;;;:9;:15;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:9;;8545:2:52;7840:72:9;;;8527:21:52;8584:2;8564:18;;;8557:30;8623:34;8603:18;;;8596:62;-1:-1:-1;;;8674:18:52;;;8667:36;8720:19;;7840:72:9;8343:402:52;7840:72:9;-1:-1:-1;;;;;7946:15:9;;;;;;;:9;:15;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;;;;;7978:6;1342:25:52;;1330:2;1315:18;;1196:177;8210:26:9;;;;;;;;8247:37;9422:659;3072:308:27;3125:7;3156:4;-1:-1:-1;;;;;3165:12:27;3148:29;;:66;;;;;3198:16;3181:13;:33;3148:66;3144:230;;;-1:-1:-1;3237:24:27;;3072:308::o;3144:230::-;-1:-1:-1;3562:73:27;;;3321:10;3562:73;;;;10535:25:52;;;;3333:12:27;10576:18:52;;;10569:34;3347:15:27;10619:18:52;;;10612:34;3606:13:27;10662:18:52;;;10655:34;3629:4:27;10705:19:52;;;;10698:61;;;;3562:73:27;;;;;;;;;;10507:19:52;;;;3562:73:27;;;3552:84;;;;;;2879:113:13:o;1359:130:7:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:7;719:10:23;1422:23:7;1414:68;;;;-1:-1:-1;;;1414:68:7;;8952:2:52;1414:68:7;;;8934:21:52;;;8971:18;;;8964:30;9030:34;9010:18;;;9003:62;9082:18;;1414:68:7;8750:356:52;8567:535:9;-1:-1:-1;;;;;8650:21:9;;8642:65;;;;-1:-1:-1;;;8642:65:9;;9313:2:52;8642:65:9;;;9295:21:52;9352:2;9332:18;;;9325:30;9391:33;9371:18;;;9364:61;9442:18;;8642:65:9;9111:355:52;8642:65:9;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:9;;;;;;:9;:18;;;;;;;;:28;;;;;;8999:37;1342:25:52;;;8999:37:9;;1315:18:52;8999:37:9;;;;;;;484:89:37;;:::o;9422:659:9:-;-1:-1:-1;;;;;9505:21:9;;9497:67;;;;-1:-1:-1;;;9497:67:9;;9673:2:52;9497:67:9;;;9655:21:52;9712:2;9692:18;;;9685:30;9751:34;9731:18;;;9724:62;-1:-1:-1;;;9802:18:52;;;9795:31;9843:19;;9497:67:9;9471:397:52;9497:67:9;-1:-1:-1;;;;;9660:18:9;;9635:22;9660:18;;;:9;:18;;;;;;9696:24;;;;9688:71;;;;-1:-1:-1;;;9688:71:9;;10075:2:52;9688:71:9;;;10057:21:52;10114:2;10094:18;;;10087:30;10153:34;10133:18;;;10126:62;-1:-1:-1;;;10204:18:52;;;10197:32;10246:19;;9688:71:9;9873:398:52;9688:71:9;-1:-1:-1;;;;;9793:18:9;;;;;;:9;:18;;;;;;;;9814:23;;;9793:44;;9930:12;:22;;;;;;;9978:37;1342:25:52;;;9793:18:9;;;9978:37;;1315:18:52;9978:37:9;1196:177:52;2433:187:7;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;3123:203:13:-;-1:-1:-1;;;;;3243:14:13;;3183:15;3243:14;;;:7;:14;;;;;918::24;;1050:1;1032:19;;;;918:14;3302:17:13;3200:126;3123:203;;;:::o;4268:165:27:-;4345:7;4371:55;4393:20;:18;:20::i;:::-;4415:10;8470:57:26;;-1:-1:-1;;;8470:57:26;;;11028:27:52;11071:11;;;11064:27;;;11107:12;;;11100:28;;;8434:7:26;;11144:12:52;;8470:57:26;;;;;;;;;;;;8460:68;;;;;;8453:75;;8341:194;;;;;6696:270;6819:7;6839:17;6858:18;6880:25;6891:4;6897:1;6900;6903;6880:10;:25::i;:::-;6838:67;;;;6915:18;6927:5;6915:11;:18::i;:::-;-1:-1:-1;6950:9:26;6696:270;-1:-1:-1;;;;;6696:270:26:o;5069:1494::-;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:26;;-1:-1:-1;6221:30:26;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;11394:25:52;;;11467:4;11455:17;;11435:18;;;11428:45;;;;11489:18;;;11482:34;;;11532:18;;;11525:34;;;6374:24:26;;11366:19:52;;6374:24:26;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:26;;-1:-1:-1;;6374:24:26;;;-1:-1:-1;;;;;;;6412:20:26;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:26;;-1:-1:-1;5069:1494:26;;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:26;;11904:2:52;788:34:26;;;11886:21:52;11943:2;11923:18;;;11916:30;11982:26;11962:18;;;11955:54;12026:18;;788:34:26;11702:348:52;730:345:26;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:26;;12257:2:52;903:41:26;;;12239:21:52;12296:2;12276:18;;;12269:30;12335:33;12315:18;;;12308:61;12386:18;;903:41:26;12055:355:52;839:236:26;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:26;;12617:2:52;1020:44:26;;;12599:21:52;12656:2;12636:18;;;12629:30;12695:34;12675:18;;;12668:62;-1:-1:-1;;;12746:18:52;;;12739:32;12788:19;;1020:44:26;12415:398:52;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:52;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:52:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;2082:180::-;2141:6;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;-1:-1:-1;2233:23:52;;2082:180;-1:-1:-1;2082:180:52:o;2267:186::-;2326:6;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;2418:29;2437:9;2418:29;:::i;:::-;2408:39;2267:186;-1:-1:-1;;;2267:186:52:o;2666:693::-;2777:6;2785;2793;2801;2809;2817;2825;2878:3;2866:9;2857:7;2853:23;2849:33;2846:53;;;2895:1;2892;2885:12;2846:53;2918:29;2937:9;2918:29;:::i;:::-;2908:39;;2966:38;3000:2;2989:9;2985:18;2966:38;:::i;:::-;2956:48;;3051:2;3040:9;3036:18;3023:32;3013:42;;3102:2;3091:9;3087:18;3074:32;3064:42;;3156:3;3145:9;3141:19;3128:33;3201:4;3194:5;3190:16;3183:5;3180:27;3170:55;;3221:1;3218;3211:12;3170:55;2666:693;;;;-1:-1:-1;2666:693:52;;;;3244:5;3296:3;3281:19;;3268:33;;-1:-1:-1;3348:3:52;3333:19;;;3320:33;;2666:693;-1:-1:-1;;2666:693:52:o;3364:260::-;3432:6;3440;3493:2;3481:9;3472:7;3468:23;3464:32;3461:52;;;3509:1;3506;3499:12;3461:52;3532:29;3551:9;3532:29;:::i;:::-;3522:39;;3580:38;3614:2;3603:9;3599:18;3580:38;:::i;:::-;3570:48;;3364:260;;;;;:::o;3629:380::-;3708:1;3704:12;;;;3751;;;3772:61;;3826:4;3818:6;3814:17;3804:27;;3772:61;3879:2;3871:6;3868:14;3848:18;3845:38;3842:161;;3925:10;3920:3;3916:20;3913:1;3906:31;3960:4;3957:1;3950:15;3988:4;3985:1;3978:15;4014:222;4079:9;;;4100:10;;;4097:133;;;4152:10;4147:3;4143:20;4140:1;4133:31;4187:4;4184:1;4177:15;4215:4;4212:1;4205:15;11570:127;11631:10;11626:3;11622:20;11619:1;11612:31;11662:4;11659:1;11652:15;11686:4;11683:1;11676:15", + "linkReferences": {}, + "immutableReferences": { + "26835": [ + { + "start": 2682, + "length": 32 + } + ], + "26837": [ + { + "start": 2640, + "length": 32 + } + ], + "26839": [ + { + "start": 2598, + "length": 32 + } + ], + "26841": [ + { + "start": 2765, + "length": 32 + } + ], + "26843": [ + { + "start": 2802, + "length": 32 + } + ], + "26845": [ + { + "start": 2723, + "length": 32 + } + ] + } }, "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", "allowance(address,address)": "dd62ed3e", "approve(address,uint256)": "095ea7b3", "balanceOf(address)": "70a08231", @@ -371,15 +511,18 @@ "decreaseAllowance(address,uint256)": "a457c2d7", "increaseAllowance(address,uint256)": "39509351", "mint(address,uint256)": "40c10f19", - "minter()": "07546172", "name()": "06fdde03", - "setMinter(address)": "fca3b5aa", + "nonces(address)": "7ecebe00", + "owner()": "8da5cb5b", + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf", + "renounceOwnership()": "715018a6", "symbol()": "95d89b41", "totalSupply()": "18160ddd", "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMinter\",\"type\":\"address\"}],\"name\":\"setMinter\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dyad.sol\":\"DYAD\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b394e20d57877a825c24c1841e219d6ab1e41decec060ea935422ac9b7a25f8a\",\"dweb:/ipfs/QmVTaGCMR4Gi9w1LUVVcjEJHrHF2qcr1avFkLtsLD6sEAr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/dyad.sol\":{\"keccak256\":\"0x33a2cd63d49a5ad63f4655c1f7037f23888acdda57ebd359e5985c964094fe62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://580710339478fb3dc5ebad8797a86ac760afeaef3f738359c52476d4fe1e5aea\",\"dweb:/ipfs/QmaioD8uwE54otpueiuAzdQ66JArwwVRausxYExxaSKW7H\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"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\":\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Dyad.sol\":\"DYAD\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b394e20d57877a825c24c1841e219d6ab1e41decec060ea935422ac9b7a25f8a\",\"dweb:/ipfs/QmVTaGCMR4Gi9w1LUVVcjEJHrHF2qcr1avFkLtsLD6sEAr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\":{\"keccak256\":\"0x66795a58157bf230b93d604fe7e6b51acb409eb9e5b98333809162f17ab3208d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://130e7ebcc7af0c2b9cac5709d9509ffd210d8e4f60f9dcea6af1a36d9b84db51\",\"dweb:/ipfs/QmZBhpEVBvGQpFEQE4xSwFGCJrYwXUuVMbspzXMWGizmEj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xbaa90c891304799f6aa4039eae4b59afc0b59ce3bcc647f3fc2bbf5a04b17f1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc3f5b077759f92f28ba4182d9410aa8fd586d7efc5f76bdd22228bf2d227f0\",\"dweb:/ipfs/QmbLPLb31LxAyB7GWir5AssC1TYVHqhBsN6R7APj2UV9fv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x34d5fd3e73f17311fc4ae0ec192c59d5e46d585045017b41a78b8c75ab387d9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11224aad5e5e78cda2e0e8456e27121ece04e725a24d63568fa56f100dc47fb3\",\"dweb:/ipfs/QmWrpMpotNwYyWcZJUuRcwas9nuy7KYsFTQ1EELUdWQRww\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x852987c093178595e02298b72a5f3c09aee541604b9e24a3a550bc63d92f3a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9b51f6bbe233c5ad5aa9dd2d09e1dc2f7e5b7a8007ad6d0a1c4cdd8e913d157\",\"dweb:/ipfs/QmNZz3XegYagUgKBPBNeMuPZQNwmYd6j7GbwTFU1T6ZsD2\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xbb9b373ec337797b9f8822171cb191095cb11e729a4fde4c207d25b8b642fb93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fba7f4448f95e3a42fba5305cc02403eee23aa62e742a0ae7bca609bdaf89da\",\"dweb:/ipfs/QmSXV5FapsVemawU9Zzkx3u3DNLhCaS9MnwcZLsPpMSKnz\"]},\"src/core/Dyad.sol\":{\"keccak256\":\"0xca0aa45d87abe42b51a3f6fce187f9f67c82982d63152f62709d2bac08b99002\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ff345f95a86246850000f2044ecdf67bc10a01fdb4eee5c5415af7fb8d6ab83\",\"dweb:/ipfs/QmVu7CPvRZ2xz8oSSGugvSiraieNZuuFeyqGL6uNpdrMFy\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -417,6 +560,25 @@ "name": "Approval", "anonymous": false }, + { + "inputs": [ + { + "internalType": "address", + "name": "previousOwner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "OwnershipTransferred", + "anonymous": false + }, { "inputs": [ { @@ -442,6 +604,19 @@ "name": "Transfer", "anonymous": false }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, { "inputs": [ { @@ -620,25 +795,44 @@ "inputs": [], "stateMutability": "view", "type": "function", - "name": "minter", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ] }, { "inputs": [], "stateMutability": "view", "type": "function", - "name": "name", + "name": "owner", "outputs": [ { - "internalType": "string", + "internalType": "address", "name": "", - "type": "string" + "type": "address" } ] }, @@ -646,13 +840,49 @@ "inputs": [ { "internalType": "address", - "name": "newMinter", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function", - "name": "setMinter" + "name": "permit" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceOwnership" }, { "inputs": [], @@ -732,11 +962,26 @@ "type": "bool" } ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferOwnership" } ], "devdoc": { "kind": "dev", "methods": { + "DOMAIN_SEPARATOR()": { + "details": "See {IERC20Permit-DOMAIN_SEPARATOR}." + }, "allowance(address,address)": { "details": "See {IERC20-allowance}." }, @@ -764,6 +1009,18 @@ "name()": { "details": "Returns the name of the token." }, + "nonces(address)": { + "details": "See {IERC20Permit-nonces}." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": { + "details": "See {IERC20Permit-permit}." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, "symbol()": { "details": "Returns the symbol of the token, usually a shorter version of the name." }, @@ -775,6 +1032,9 @@ }, "transferFrom(address,address,uint256)": { "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } }, "version": 1 @@ -800,11 +1060,19 @@ "bytecodeHash": "ipfs" }, "compilationTarget": { - "src/dyad.sol": "DYAD" + "src/core/Dyad.sol": "DYAD" }, "libraries": {} }, "sources": { + "lib/openzeppelin-contracts/contracts/access/Ownable.sol": { + "keccak256": "0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673", + "urls": [ + "bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2", + "dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y" + ], + "license": "MIT" + }, "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": { "keccak256": "0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d", "urls": [ @@ -837,6 +1105,22 @@ ], "license": "MIT" }, + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol": { + "keccak256": "0x66795a58157bf230b93d604fe7e6b51acb409eb9e5b98333809162f17ab3208d", + "urls": [ + "bzz-raw://130e7ebcc7af0c2b9cac5709d9509ffd210d8e4f60f9dcea6af1a36d9b84db51", + "dweb:/ipfs/QmZBhpEVBvGQpFEQE4xSwFGCJrYwXUuVMbspzXMWGizmEj" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "keccak256": "0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329", + "urls": [ + "bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95", + "dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7" + ], + "license": "MIT" + }, "lib/openzeppelin-contracts/contracts/utils/Context.sol": { "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", "urls": [ @@ -845,11 +1129,51 @@ ], "license": "MIT" }, - "src/dyad.sol": { - "keccak256": "0x33a2cd63d49a5ad63f4655c1f7037f23888acdda57ebd359e5985c964094fe62", + "lib/openzeppelin-contracts/contracts/utils/Counters.sol": { + "keccak256": "0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1", "urls": [ - "bzz-raw://580710339478fb3dc5ebad8797a86ac760afeaef3f738359c52476d4fe1e5aea", - "dweb:/ipfs/QmaioD8uwE54otpueiuAzdQ66JArwwVRausxYExxaSKW7H" + "bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee", + "dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0xbaa90c891304799f6aa4039eae4b59afc0b59ce3bcc647f3fc2bbf5a04b17f1e", + "urls": [ + "bzz-raw://1cc3f5b077759f92f28ba4182d9410aa8fd586d7efc5f76bdd22228bf2d227f0", + "dweb:/ipfs/QmbLPLb31LxAyB7GWir5AssC1TYVHqhBsN6R7APj2UV9fv" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": { + "keccak256": "0x34d5fd3e73f17311fc4ae0ec192c59d5e46d585045017b41a78b8c75ab387d9d", + "urls": [ + "bzz-raw://11224aad5e5e78cda2e0e8456e27121ece04e725a24d63568fa56f100dc47fb3", + "dweb:/ipfs/QmWrpMpotNwYyWcZJUuRcwas9nuy7KYsFTQ1EELUdWQRww" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol": { + "keccak256": "0x852987c093178595e02298b72a5f3c09aee541604b9e24a3a550bc63d92f3a22", + "urls": [ + "bzz-raw://f9b51f6bbe233c5ad5aa9dd2d09e1dc2f7e5b7a8007ad6d0a1c4cdd8e913d157", + "dweb:/ipfs/QmNZz3XegYagUgKBPBNeMuPZQNwmYd6j7GbwTFU1T6ZsD2" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xbb9b373ec337797b9f8822171cb191095cb11e729a4fde4c207d25b8b642fb93", + "urls": [ + "bzz-raw://6fba7f4448f95e3a42fba5305cc02403eee23aa62e742a0ae7bca609bdaf89da", + "dweb:/ipfs/QmSXV5FapsVemawU9Zzkx3u3DNLhCaS9MnwcZLsPpMSKnz" + ], + "license": "MIT" + }, + "src/core/Dyad.sol": { + "keccak256": "0xca0aa45d87abe42b51a3f6fce187f9f67c82982d63152f62709d2bac08b99002", + "urls": [ + "bzz-raw://5ff345f95a86246850000f2044ecdf67bc10a01fdb4eee5c5415af7fb8d6ab83", + "dweb:/ipfs/QmVu7CPvRZ2xz8oSSGugvSiraieNZuuFeyqGL6uNpdrMFy" ], "license": "MIT" } @@ -857,35 +1181,59 @@ "version": 1 }, "ast": { - "absolutePath": "src/dyad.sol", - "id": 28998, + "absolutePath": "src/core/Dyad.sol", + "id": 28229, "exportedSymbols": { "Context": [ - 25803 + 26219 + ], + "Counters": [ + 26293 ], "DYAD": [ - 28997 + 28228 + ], + "ECDSA": [ + 26829 + ], + "EIP712": [ + 26983 ], "ERC20": [ - 23813 + 23991 ], "ERC20Burnable": [ - 23935 + 24113 + ], + "ERC20Permit": [ + 24310 ], "IERC20": [ - 23891 + 24069 ], "IERC20Metadata": [ - 23960 + 24138 + ], + "IERC20Permit": [ + 24346 + ], + "Math": [ + 27884 + ], + "Ownable": [ + 23339 + ], + "Strings": [ + 26468 ] }, "nodeType": "SourceUnit", - "src": "32:744:29", + "src": "32:544:37", "nodes": [ { - "id": 28936, + "id": 28189, "nodeType": "PragmaDirective", - "src": "32:24:29", + "src": "32:24:37", "nodes": [], "literals": [ "solidity", @@ -895,136 +1243,73 @@ ] }, { - "id": 28937, + "id": 28190, + "nodeType": "ImportDirective", + "src": "58:52:37", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "nameLocation": "-1:-1:-1", + "scope": 28229, + "sourceUnit": 23340, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28191, "nodeType": "ImportDirective", - "src": "58:55:29", + "src": "111:55:37", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "nameLocation": "-1:-1:-1", - "scope": 28998, - "sourceUnit": 23814, + "scope": 28229, + "sourceUnit": 23992, "symbolAliases": [], "unitAlias": "" }, { - "id": 28938, + "id": 28192, "nodeType": "ImportDirective", - "src": "114:74:29", + "src": "167:74:37", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol", "file": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", "nameLocation": "-1:-1:-1", - "scope": 28998, - "sourceUnit": 23936, + "scope": 28229, + "sourceUnit": 24114, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28193, + "nodeType": "ImportDirective", + "src": "242:78:37", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", + "file": "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", + "nameLocation": "-1:-1:-1", + "scope": 28229, + "sourceUnit": 24311, "symbolAliases": [], "unitAlias": "" }, { - "id": 28997, + "id": 28228, "nodeType": "ContractDefinition", - "src": "190:585:29", + "src": "322:253:37", "nodes": [ { - "id": 28944, - "nodeType": "VariableDeclaration", - "src": "232:21:29", - "nodes": [], - "constant": false, - "functionSelector": "07546172", - "mutability": "mutable", - "name": "minter", - "nameLocation": "247:6:29", - "scope": 28997, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28943, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "232:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "id": 28957, + "id": 28212, "nodeType": "FunctionDefinition", - "src": "258:77:29", + "src": "387:93:37", "nodes": [], "body": { - "id": 28956, + "id": 28211, "nodeType": "Block", - "src": "305:30:29", + "src": "478:2:37", "nodes": [], - "statements": [ - { - "expression": { - "id": 28954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28951, - "name": "minter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28944, - "src": "311:6:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 28952, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "320:3:29", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "324:6:29", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "320:10:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "311:19:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 28955, - "nodeType": "ExpressionStatement", - "src": "311:19:29" - } - ] + "statements": [] }, "implemented": true, "kind": "constructor", @@ -1033,14 +1318,14 @@ "arguments": [ { "hexValue": "4459414420537461626c65636f696e", - "id": 28947, + "id": 28204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "278:17:29", + "src": "412:17:37", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fc19124b29295fb877848968fdcb509b240f1ec7d80c89a918679f6f7222f73b", "typeString": "literal_string \"DYAD Stablecoin\"" @@ -1049,14 +1334,14 @@ }, { "hexValue": "44594144", - "id": 28948, + "id": 28205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "297:6:29", + "src": "431:6:37", "typeDescriptions": { "typeIdentifier": "t_stringliteral_57bd728cc6cfd84ac9c146530c32d289a1d90838cf23960b8bedfbb3597ef414", "typeString": "literal_string \"DYAD\"" @@ -1064,426 +1349,108 @@ "value": "DYAD" } ], - "id": 28949, + "id": 28206, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 28946, + "id": 28203, "name": "ERC20", "nameLocations": [ - "272:5:29" + "406:5:37" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 23813, - "src": "272:5:29" + "referencedDeclaration": 23991, + "src": "406:5:37" }, "nodeType": "ModifierInvocation", - "src": "272:32:29" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 28945, - "nodeType": "ParameterList", - "parameters": [], - "src": "269:2:29" - }, - "returnParameters": { - "id": 28950, - "nodeType": "ParameterList", - "parameters": [], - "src": "305:0:29" - }, - "scope": 28997, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 28975, - "nodeType": "FunctionDefinition", - "src": "339:297:29", - "nodes": [], - "body": { - "id": 28974, - "nodeType": "Block", - "src": "384:252:29", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 28963, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "556:3:29", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "560:6:29", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "556:10:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 28965, - "name": "minter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28944, - "src": "570:6:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "556:20:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4f6e6c79206d696e7465722063616e20736574206d696e746572", - "id": 28967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "578:28:29", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_718f9fa5b78434054ef7e56a8e4e2d77dd5af86c44ddf50da590e1313ca5b702", - "typeString": "literal_string \"Only minter can set minter\"" - }, - "value": "Only minter can set minter" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_718f9fa5b78434054ef7e56a8e4e2d77dd5af86c44ddf50da590e1313ca5b702", - "typeString": "literal_string \"Only minter can set minter\"" - } - ], - "id": 28962, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "548:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 28968, + "src": "406:32:37" + }, + { + "arguments": [ + { + "hexValue": "4459414420537461626c65636f696e", + "id": 28208, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "string", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "548:59:29", - "tryCall": false, + "nodeType": "Literal", + "src": "456:17:37", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 28969, - "nodeType": "ExpressionStatement", - "src": "548:59:29" - }, - { - "expression": { - "id": 28972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28970, - "name": "minter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28944, - "src": "613:6:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 28971, - "name": "newMinter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28959, - "src": "622:9:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_stringliteral_fc19124b29295fb877848968fdcb509b240f1ec7d80c89a918679f6f7222f73b", + "typeString": "literal_string \"DYAD Stablecoin\"" }, - "src": "613:18:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 28973, - "nodeType": "ExpressionStatement", - "src": "613:18:29" - } - ] - }, - "functionSelector": "fca3b5aa", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setMinter", - "nameLocation": "348:9:29", + "value": "DYAD Stablecoin" + } + ], + "id": 28209, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 28207, + "name": "ERC20Permit", + "nameLocations": [ + "444:11:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 24310, + "src": "444:11:37" + }, + "nodeType": "ModifierInvocation", + "src": "444:30:37" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", "parameters": { - "id": 28960, + "id": 28202, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28959, - "mutability": "mutable", - "name": "newMinter", - "nameLocation": "366:9:29", - "nodeType": "VariableDeclaration", - "scope": 28975, - "src": "358:17:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28958, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "357:19:29" + "parameters": [], + "src": "398:2:37" }, "returnParameters": { - "id": 28961, + "id": 28210, "nodeType": "ParameterList", "parameters": [], - "src": "384:0:29" + "src": "478:0:37" }, - "scope": 28997, + "scope": 28228, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28996, + "id": 28227, "nodeType": "FunctionDefinition", - "src": "640:133:29", + "src": "484:89:37", "nodes": [], "body": { - "id": 28995, + "id": 28226, "nodeType": "Block", - "src": "686:87:29", + "src": "543:30:37", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 28983, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "700:3:29", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "704:6:29", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "700:10:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 28985, - "name": "minter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28944, - "src": "714:6:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "700:20:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4f6e6c79206d696e7465722063616e206d696e74", - "id": 28987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "722:22:29", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62ef35c3f1cf0988186ecf8f5f53adafe012bc494535e2a3235825e9182769af", - "typeString": "literal_string \"Only minter can mint\"" - }, - "value": "Only minter can mint" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62ef35c3f1cf0988186ecf8f5f53adafe012bc494535e2a3235825e9182769af", - "typeString": "literal_string \"Only minter can mint\"" - } - ], - "id": 28982, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "692:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 28988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "692:53:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 28989, - "nodeType": "ExpressionStatement", - "src": "692:53:29" - }, - { - "expression": { - "arguments": [ - { - "id": 28991, + "id": 28222, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28977, - "src": "757:2:29", + "referencedDeclaration": 28214, + "src": "557:2:37", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 28992, + "id": 28223, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28979, - "src": "761:6:29", + "referencedDeclaration": 28216, + "src": "561:6:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1501,18 +1468,18 @@ "typeString": "uint256" } ], - "id": 28990, + "id": 28221, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23630, - "src": "751:5:29", + "referencedDeclaration": 23808, + "src": "551:5:37", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 28993, + "id": 28224, "isConstant": false, "isLValue": false, "isPure": false, @@ -1521,38 +1488,55 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "751:17:29", + "src": "551:17:37", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28994, + "id": 28225, "nodeType": "ExpressionStatement", - "src": "751:17:29" + "src": "551:17:37" } ] }, "functionSelector": "40c10f19", "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "id": 28219, + "kind": "modifierInvocation", + "modifierName": { + "id": 28218, + "name": "onlyOwner", + "nameLocations": [ + "533:9:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 23258, + "src": "533:9:37" + }, + "nodeType": "ModifierInvocation", + "src": "533:9:37" + } + ], "name": "mint", - "nameLocation": "649:4:29", + "nameLocation": "493:4:37", "parameters": { - "id": 28980, + "id": 28217, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28977, + "id": 28214, "mutability": "mutable", "name": "to", - "nameLocation": "662:2:29", + "nameLocation": "506:2:37", "nodeType": "VariableDeclaration", - "scope": 28996, - "src": "654:10:29", + "scope": 28227, + "src": "498:10:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1560,10 +1544,10 @@ "typeString": "address" }, "typeName": { - "id": 28976, + "id": 28213, "name": "address", "nodeType": "ElementaryTypeName", - "src": "654:7:29", + "src": "498:7:37", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1574,13 +1558,13 @@ }, { "constant": false, - "id": 28979, + "id": 28216, "mutability": "mutable", "name": "amount", - "nameLocation": "671:6:29", + "nameLocation": "518:6:37", "nodeType": "VariableDeclaration", - "scope": 28996, - "src": "666:11:29", + "scope": 28227, + "src": "510:14:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1588,10 +1572,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28978, - "name": "uint", + "id": 28215, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "666:4:29", + "src": "510:7:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1600,15 +1584,15 @@ "visibility": "internal" } ], - "src": "653:25:29" + "src": "497:28:37" }, "returnParameters": { - "id": 28981, + "id": 28220, "nodeType": "ParameterList", "parameters": [], - "src": "686:0:29" + "src": "543:0:37" }, - "scope": 28997, + "scope": 28228, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -1618,33 +1602,63 @@ "baseContracts": [ { "baseName": { - "id": 28939, + "id": 28194, + "name": "Ownable", + "nameLocations": [ + "339:7:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 23339, + "src": "339:7:37" + }, + "id": 28195, + "nodeType": "InheritanceSpecifier", + "src": "339:7:37" + }, + { + "baseName": { + "id": 28196, "name": "ERC20", "nameLocations": [ - "207:5:29" + "348:5:37" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 23813, - "src": "207:5:29" + "referencedDeclaration": 23991, + "src": "348:5:37" }, - "id": 28940, + "id": 28197, "nodeType": "InheritanceSpecifier", - "src": "207:5:29" + "src": "348:5:37" }, { "baseName": { - "id": 28941, + "id": 28198, "name": "ERC20Burnable", "nameLocations": [ - "214:13:29" + "355:13:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 24113, + "src": "355:13:37" + }, + "id": 28199, + "nodeType": "InheritanceSpecifier", + "src": "355:13:37" + }, + { + "baseName": { + "id": 28200, + "name": "ERC20Permit", + "nameLocations": [ + "370:11:37" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 23935, - "src": "214:13:29" + "referencedDeclaration": 24310, + "src": "370:11:37" }, - "id": 28942, + "id": 28201, "nodeType": "InheritanceSpecifier", - "src": "214:13:29" + "src": "370:11:37" } ], "canonicalName": "DYAD", @@ -1652,20 +1666,24 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 28997, - 23935, - 23813, - 23960, - 23891, - 25803 + 28228, + 24310, + 26983, + 24346, + 24113, + 23991, + 24138, + 24069, + 23339, + 26219 ], "name": "DYAD", - "nameLocation": "199:4:29", - "scope": 28998, + "nameLocation": "331:4:37", + "scope": 28229, "usedErrors": [] } ], "license": "MIT" }, - "id": 29 + "id": 37 } \ No newline at end of file diff --git a/abi/Pool.json b/abi/Pool.json deleted file mode 100644 index 420a843..0000000 --- a/abi/Pool.json +++ /dev/null @@ -1,11224 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_dnft", - "type": "address" - }, - { - "internalType": "address", - "name": "_dyad", - "type": "address" - }, - { - "internalType": "address", - "name": "oracle", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NftClaimed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newEthPrice", - "type": "uint256" - } - ], - "name": "Synced", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "claim", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "dnft", - "outputs": [ - { - "internalType": "contract IdNFT", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "dyad", - "outputs": [ - { - "internalType": "contract DYAD", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastEthPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minAmount", - "type": "uint256" - } - ], - "name": "mintDyad", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "redeem", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": { - "object": "0x60806040523480156200001157600080fd5b5060405162001cad38038062001cad833981016040819052620000349162000120565b600180546001600160a01b038086166001600160a01b0319928316179092556002805485841690831617905560038054928416929091169190911790556200007b62000088565b60005550620001d7915050565b60035460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa158015620000d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f9919062000182565b5091949350505050565b80516001600160a01b03811681146200011b57600080fd5b919050565b6000806000606084860312156200013657600080fd5b620001418462000103565b9250620001516020850162000103565b9150620001616040850162000103565b90509250925092565b80516001600160501b03811681146200011b57600080fd5b600080600080600060a086880312156200019b57600080fd5b620001a6866200016a565b9450602086015193506040860151925060608601519150620001cb608087016200016a565b90509295509295909350565b611ac680620001e76000396000f3fe6080604052600436106100865760003560e01c8063b6b55f2511610059578063b6b55f251461012e578063ddd5e1b21461014e578063f3fef3a314610161578063fb9103cc14610181578063fff6cae91461019457600080fd5b80631e9a69501461008b5780637038fc4e146100ad578063926fe324146100d6578063add95a511461010e575b600080fd5b34801561009757600080fd5b506100ab6100a636600461170a565b6101a9565b005b3480156100b957600080fd5b506100c360005481565b6040519081526020015b60405180910390f35b3480156100e257600080fd5b506001546100f6906001600160a01b031681565b6040516001600160a01b0390911681526020016100cd565b34801561011a57600080fd5b506002546100f6906001600160a01b031681565b34801561013a57600080fd5b506100ab610149366004611736565b610297565b6100c361015c36600461174f565b610340565b34801561016d57600080fd5b506100ab61017c36600461170a565b6105be565b6100c361018f366004611736565b610664565b3480156101a057600080fd5b506100c36107d2565b6001546001600160a01b031633146101dc5760405162461bcd60e51b81526004016101d39061177f565b60405180910390fd5b600254604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561022257600080fd5b505af1158015610236573d6000803e3d6000fd5b5050505060008054826305f5e10061024e91906117d8565b61025891906117ef565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015610291573d6000803e3d6000fd5b50505050565b6001546001600160a01b031633146102c15760405162461bcd60e51b81526004016101d39061177f565b6002546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033c9190611811565b5050565b60015460405163483afb2d60e01b81526004810184905260009182916001600160a01b039091169063483afb2d90602401606060405180830381865afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b29190611849565b6001546040516331a9108f60e11b8152600481018790529192506001600160a01b0385811692911690636352211e90602401602060405180830381865afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042591906118b3565b6001600160a01b0316857f62f2b0e4889a8f1f033f49a00b0f19dde517bdf2fd1a73367a71f4b188769cc460405160405180910390a4600154604051630852cd8d60e31b8152600481018690526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156104a157600080fd5b505af11580156104b5573d6000803e3d6000fd5b50505050600081602001511261050d5760405162461bcd60e51b815260206004820152601d60248201527f644e46543a204e4654206973206e6f74206c6971756964617461626c6500000060448201526064016101d3565b60006305f5e1006000548360200151610525906118d0565b61052f91906117d8565b61053991906117ef565b600154604051631c925e4d60e11b81529192506001600160a01b031690633924bc9a903490610570908890879087906004016118ec565b60206040518083038185885af115801561058e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105b3919061192b565b925050505b92915050565b6001546001600160a01b031633146105e85760405162461bcd60e51b81526004016101d39061177f565b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611811565b505050565b6001546000906001600160a01b031633146106915760405162461bcd60e51b81526004016101d39061177f565b600034116106e15760405162461bcd60e51b815260206004820152601f60248201527f506f6f6c3a20596f75206e65656420746f2073656e6420736f6d65204554480060448201526064016101d3565b60006305f5e100346106f1610980565b6106fb91906117d8565b61070591906117ef565b9050828110156107655760405162461bcd60e51b815260206004820152602560248201527f506f6f6c3a206d696e74447961643a206d696e416d6f756e74206e6f742072656044820152641858da195960da1b60648201526084016101d3565b6002546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b1580156107b157600080fd5b505af11580156107c5573d6000803e3d6000fd5b509293505050505b919050565b6000806107dd610980565b90506000805482116107f05760006107f3565b60015b9050600080548361271061080791906117d8565b61081191906117ef565b9050600082600181111561082757610827611944565b14610840576108386127108261195a565b905080610850565b61084c8161271061195a565b9050805b50600061085d82846109f8565b9050600183600181111561087357610873611944565b146108db57600254604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156108be57600080fd5b505af11580156108d2573d6000803e3d6000fd5b50505050610940565b6002546040516340c10f1960e01b8152306004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561092757600080fd5b505af115801561093b573d6000803e3d6000fd5b505050505b60008490556040518481527fff14d8520387b9b85d2a017dc41ae15db04a22d4c67deac04eb45048631ffa869060200160405180910390a1949350505050565b60035460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611987565b5091949350505050565b600254604080516318160ddd60e01b8152905160009283928392610a74926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6e919061192b565b86610f32565b90506000610a8185610f52565b6001546040805163d9dee3d160e01b81529051929350600019926000926001600160a01b03169163d9dee3d19160048083019260209291908290030181865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af6919061192b565b905060005b600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b72919061192b565b811015610ec057600154604051634f6ccce760e01b8152600481018390526000916001600160a01b031690634f6ccce7906024016020604051808303816000875af1158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be9919061192b565b90506000856020015186600001518481518110610c0857610c086119d7565b6020026020010151612710610c1d91906117d8565b610c2791906117ef565b90506000610c358883610f32565b60015460405163483afb2d60e01b8152600481018690529192506000916001600160a01b039091169063483afb2d90602401606060405180830381865afa158015610c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca89190611849565b90506000808d6001811115610cbf57610cbf611944565b148015610cd0575060008260200151135b15610dbc5788604001518681518110610ceb57610ceb6119d7565b6020026020010151836064610d0091906117d8565b610d0a91906117ef565b90508a158015610d9757506001546040516331a9108f60e11b8152600481018790526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8291906118b3565b6001600160a01b0316336001600160a01b0316145b15610dbc5760019a50610daf8260400151600a610f32565b610db990826119ed565b90505b60008d6001811115610dd057610dd0611944565b03610e06578282602001818151610de79190611a00565b905250604082018051829190610dfe9083906119ed565b905250610e1c565b8282602001818151610e189190611a27565b9052505b6001546040516346e8575760e01b81526001600160a01b03909116906346e8575790610e4e9088908690600401611a4f565b600060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b505050508782604001511015610e9457816040015197505b8682604001511115610ea857816040015196505b50505050508080610eb890611a77565b915050610afb565b5060015460405163b0082cdf60e01b815260048101849052602481018390526001600160a01b039091169063b0082cdf90604401600060405180830381600087803b158015610f0e57600080fd5b505af1158015610f22573d6000803e3d6000fd5b50959a9950505050505050505050565b6000612710610f4183856117d8565b610f4b91906117ef565b9392505050565b610f7660405180606001604052806060815260200160008152602001606081525090565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe4919061192b565b90506000808267ffffffffffffffff81111561100257611002611833565b60405190808252806020026020018201604052801561102b578160200160208202803683370190505b50905060008367ffffffffffffffff81111561104957611049611833565b604051908082528060200260200182016040528015611072578160200160208202803683370190505b50905060005b848110156114d457600154604051634f6ccce760e01b8152600481018390526000916001600160a01b03169063483afb2d908290634f6ccce7906024016020604051808303816000875af11580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f8919061192b565b6040518263ffffffff1660e01b815260040161111691815260200190565b606060405180830381865afa158015611133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111579190611849565b90506000806000836020015113156114755760015460408051636633957160e11b815290516000926001600160a01b03169163cc672ae29160048083019260209291908290030181865afa1580156111b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d7919061192b565b600160009054906101000a90046001600160a01b03166001600160a01b031663d9dee3d16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e919061192b565b611258919061195a565b905080600003611266575060015b600081600160009054906101000a90046001600160a01b03166001600160a01b031663cc672ae26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e0919061192b565b86604001516112ef919061195a565b6112fb906127106117d8565b61130591906117ef565b905060008a600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611381919061192b565b61138b91906117ef565b6113969060016119ed565b602087015187516113a791906119ed565b6113b3906127106117d8565b6113bd91906117ef565b90506113d26113cd6064846117ef565b611505565b935060008d60018111156113e8576113e8611944565b036113fc576113f98461012c61195a565b93505b8551602087015160009161140f916119ed565b61141a9060016119ed565b602088015161142b906127106117d8565b61143591906117ef565b9050606460008f600181111561144d5761144d611944565b14611458578161145a565b825b61146490876117d8565b61146e91906117ef565b9550505050505b81868581518110611488576114886119d7565b602090810291909101015261149d82886119ed565b9650808585815181106114b2576114b26119d7565b60200260200101818152505050505080806114cc90611a77565b915050611078565b50826000036114e257600192505b604080516060810182529283526020830193909352918101919091529392505050565b6000606482111561156e5760405162461bcd60e51b815260206004820152602d60248201527f506f6f6c4c6962726172793a207870206f7574206f662072616e67652028302060448201526c3c3d207870203c3d203130302960981b60648201526084016101d3565b603d82101561157f57506032919050565b604080516105008101825260338082526020820181905291810182905260608101919091526034608080830191909152603560a080840182905260c0840191909152603660e084015260376101008401526039610120840152603a610140840152603c610160840152603f61018084015260426101a084015260456101c0840152604a6101e0840152604f6102008401526055610220840152605c6102408401526063610260840152606c61028084015260766102a08401526102c0830191909152608b6102e0830152609661030083015261032082015260ab61034082015260b561036082015260bf61038082015260c86103a082015260cf6103c082015260d66103e082015260dc61040082015260e161042082015260e661044082015260e961046082015260ec61048082015260ef6104a082015260f16104c082015260f26104e0820152806116d3603d8561195a565b602881106116e3576116e36119d7565b602002015160ff169392505050565b6001600160a01b038116811461170757600080fd5b50565b6000806040838503121561171d57600080fd5b8235611728816116f2565b946020939093013593505050565b60006020828403121561174857600080fd5b5035919050565b6000806040838503121561176257600080fd5b823591506020830135611774816116f2565b809150509250929050565b60208082526023908201527f506f6f6c3a204f6e6c792063616c6c61626c65206279204e465420636f6e74726040820152621858dd60ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105b8576105b86117c2565b60008261180c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561182357600080fd5b81518015158114610f4b57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006060828403121561185b57600080fd5b6040516060810181811067ffffffffffffffff8211171561188c57634e487b7160e01b600052604160045260246000fd5b80604052508251815260208301516020820152604083015160408201528091505092915050565b6000602082840312156118c557600080fd5b8151610f4b816116f2565b6000600160ff1b82016118e5576118e56117c2565b5060000390565b6001600160a01b038416815260a0810161191d60208301858051825260208082015190830152604090810151910152565b826080830152949350505050565b60006020828403121561193d57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b818103818111156105b8576105b86117c2565b805169ffffffffffffffffffff811681146107cd57600080fd5b600080600080600060a0868803121561199f57600080fd5b6119a88661196d565b94506020860151935060408601519250606086015191506119cb6080870161196d565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b808201808211156105b8576105b86117c2565b8181036000831280158383131683831282161715611a2057611a206117c2565b5092915050565b8082018281126000831280158216821582161715611a4757611a476117c2565b505092915050565b82815260808101610f4b60208301848051825260208082015190830152604090810151910152565b600060018201611a8957611a896117c2565b506001019056fea264697066735822122025459ec7482c51aa0aa41ae495f2ddfa087488b31e96c8d08884205fd44aa3fd64736f6c63430008110033", - "sourceMap": "275:8608:27:-:0;;;1427:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1491:4;:27;;-1:-1:-1;;;;;1491:27:27;;;-1:-1:-1;;;;;;1491:27:27;;;;;;;1524:4;:26;;;;;;;;;;;1556:9;:36;;;;;;;;;;;;;;;1618:16;:14;:16::i;:::-;1598:12;:37;-1:-1:-1;275:8608:27;;-1:-1:-1;;275:8608:27;1686:180;1834:9;;:27;;;-1:-1:-1;;;1834:27:27;;;;1735:15;;-1:-1:-1;;;;;1834:9:27;;:25;;:27;;;;;;;;;;;;;;:9;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1809:52:27;;1686:180;-1:-1:-1;;;;1686:180:27:o;14:177:39:-;93:13;;-1:-1:-1;;;;;135:31:39;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;579:175::-;657:13;;-1:-1:-1;;;;;699:30:39;;689:41;;679:69;;744:1;741;734:12;759:473;862:6;870;878;886;894;947:3;935:9;926:7;922:23;918:33;915:53;;;964:1;961;954:12;915:53;987:39;1016:9;987:39;:::i;:::-;977:49;;1066:2;1055:9;1051:18;1045:25;1035:35;;1110:2;1099:9;1095:18;1089:25;1079:35;;1154:2;1143:9;1139:18;1133:25;1123:35;;1177:49;1221:3;1210:9;1206:19;1177:49;:::i;:::-;1167:59;;759:473;;;;;;;;:::o;:::-;275:8608:27;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080604052600436106100865760003560e01c8063b6b55f2511610059578063b6b55f251461012e578063ddd5e1b21461014e578063f3fef3a314610161578063fb9103cc14610181578063fff6cae91461019457600080fd5b80631e9a69501461008b5780637038fc4e146100ad578063926fe324146100d6578063add95a511461010e575b600080fd5b34801561009757600080fd5b506100ab6100a636600461170a565b6101a9565b005b3480156100b957600080fd5b506100c360005481565b6040519081526020015b60405180910390f35b3480156100e257600080fd5b506001546100f6906001600160a01b031681565b6040516001600160a01b0390911681526020016100cd565b34801561011a57600080fd5b506002546100f6906001600160a01b031681565b34801561013a57600080fd5b506100ab610149366004611736565b610297565b6100c361015c36600461174f565b610340565b34801561016d57600080fd5b506100ab61017c36600461170a565b6105be565b6100c361018f366004611736565b610664565b3480156101a057600080fd5b506100c36107d2565b6001546001600160a01b031633146101dc5760405162461bcd60e51b81526004016101d39061177f565b60405180910390fd5b600254604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561022257600080fd5b505af1158015610236573d6000803e3d6000fd5b5050505060008054826305f5e10061024e91906117d8565b61025891906117ef565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015610291573d6000803e3d6000fd5b50505050565b6001546001600160a01b031633146102c15760405162461bcd60e51b81526004016101d39061177f565b6002546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033c9190611811565b5050565b60015460405163483afb2d60e01b81526004810184905260009182916001600160a01b039091169063483afb2d90602401606060405180830381865afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b29190611849565b6001546040516331a9108f60e11b8152600481018790529192506001600160a01b0385811692911690636352211e90602401602060405180830381865afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042591906118b3565b6001600160a01b0316857f62f2b0e4889a8f1f033f49a00b0f19dde517bdf2fd1a73367a71f4b188769cc460405160405180910390a4600154604051630852cd8d60e31b8152600481018690526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156104a157600080fd5b505af11580156104b5573d6000803e3d6000fd5b50505050600081602001511261050d5760405162461bcd60e51b815260206004820152601d60248201527f644e46543a204e4654206973206e6f74206c6971756964617461626c6500000060448201526064016101d3565b60006305f5e1006000548360200151610525906118d0565b61052f91906117d8565b61053991906117ef565b600154604051631c925e4d60e11b81529192506001600160a01b031690633924bc9a903490610570908890879087906004016118ec565b60206040518083038185885af115801561058e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105b3919061192b565b925050505b92915050565b6001546001600160a01b031633146105e85760405162461bcd60e51b81526004016101d39061177f565b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611811565b505050565b6001546000906001600160a01b031633146106915760405162461bcd60e51b81526004016101d39061177f565b600034116106e15760405162461bcd60e51b815260206004820152601f60248201527f506f6f6c3a20596f75206e65656420746f2073656e6420736f6d65204554480060448201526064016101d3565b60006305f5e100346106f1610980565b6106fb91906117d8565b61070591906117ef565b9050828110156107655760405162461bcd60e51b815260206004820152602560248201527f506f6f6c3a206d696e74447961643a206d696e416d6f756e74206e6f742072656044820152641858da195960da1b60648201526084016101d3565b6002546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b1580156107b157600080fd5b505af11580156107c5573d6000803e3d6000fd5b509293505050505b919050565b6000806107dd610980565b90506000805482116107f05760006107f3565b60015b9050600080548361271061080791906117d8565b61081191906117ef565b9050600082600181111561082757610827611944565b14610840576108386127108261195a565b905080610850565b61084c8161271061195a565b9050805b50600061085d82846109f8565b9050600183600181111561087357610873611944565b146108db57600254604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156108be57600080fd5b505af11580156108d2573d6000803e3d6000fd5b50505050610940565b6002546040516340c10f1960e01b8152306004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561092757600080fd5b505af115801561093b573d6000803e3d6000fd5b505050505b60008490556040518481527fff14d8520387b9b85d2a017dc41ae15db04a22d4c67deac04eb45048631ffa869060200160405180910390a1949350505050565b60035460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611987565b5091949350505050565b600254604080516318160ddd60e01b8152905160009283928392610a74926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6e919061192b565b86610f32565b90506000610a8185610f52565b6001546040805163d9dee3d160e01b81529051929350600019926000926001600160a01b03169163d9dee3d19160048083019260209291908290030181865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af6919061192b565b905060005b600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b72919061192b565b811015610ec057600154604051634f6ccce760e01b8152600481018390526000916001600160a01b031690634f6ccce7906024016020604051808303816000875af1158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be9919061192b565b90506000856020015186600001518481518110610c0857610c086119d7565b6020026020010151612710610c1d91906117d8565b610c2791906117ef565b90506000610c358883610f32565b60015460405163483afb2d60e01b8152600481018690529192506000916001600160a01b039091169063483afb2d90602401606060405180830381865afa158015610c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca89190611849565b90506000808d6001811115610cbf57610cbf611944565b148015610cd0575060008260200151135b15610dbc5788604001518681518110610ceb57610ceb6119d7565b6020026020010151836064610d0091906117d8565b610d0a91906117ef565b90508a158015610d9757506001546040516331a9108f60e11b8152600481018790526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8291906118b3565b6001600160a01b0316336001600160a01b0316145b15610dbc5760019a50610daf8260400151600a610f32565b610db990826119ed565b90505b60008d6001811115610dd057610dd0611944565b03610e06578282602001818151610de79190611a00565b905250604082018051829190610dfe9083906119ed565b905250610e1c565b8282602001818151610e189190611a27565b9052505b6001546040516346e8575760e01b81526001600160a01b03909116906346e8575790610e4e9088908690600401611a4f565b600060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b505050508782604001511015610e9457816040015197505b8682604001511115610ea857816040015196505b50505050508080610eb890611a77565b915050610afb565b5060015460405163b0082cdf60e01b815260048101849052602481018390526001600160a01b039091169063b0082cdf90604401600060405180830381600087803b158015610f0e57600080fd5b505af1158015610f22573d6000803e3d6000fd5b50959a9950505050505050505050565b6000612710610f4183856117d8565b610f4b91906117ef565b9392505050565b610f7660405180606001604052806060815260200160008152602001606081525090565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe4919061192b565b90506000808267ffffffffffffffff81111561100257611002611833565b60405190808252806020026020018201604052801561102b578160200160208202803683370190505b50905060008367ffffffffffffffff81111561104957611049611833565b604051908082528060200260200182016040528015611072578160200160208202803683370190505b50905060005b848110156114d457600154604051634f6ccce760e01b8152600481018390526000916001600160a01b03169063483afb2d908290634f6ccce7906024016020604051808303816000875af11580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f8919061192b565b6040518263ffffffff1660e01b815260040161111691815260200190565b606060405180830381865afa158015611133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111579190611849565b90506000806000836020015113156114755760015460408051636633957160e11b815290516000926001600160a01b03169163cc672ae29160048083019260209291908290030181865afa1580156111b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d7919061192b565b600160009054906101000a90046001600160a01b03166001600160a01b031663d9dee3d16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e919061192b565b611258919061195a565b905080600003611266575060015b600081600160009054906101000a90046001600160a01b03166001600160a01b031663cc672ae26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e0919061192b565b86604001516112ef919061195a565b6112fb906127106117d8565b61130591906117ef565b905060008a600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611381919061192b565b61138b91906117ef565b6113969060016119ed565b602087015187516113a791906119ed565b6113b3906127106117d8565b6113bd91906117ef565b90506113d26113cd6064846117ef565b611505565b935060008d60018111156113e8576113e8611944565b036113fc576113f98461012c61195a565b93505b8551602087015160009161140f916119ed565b61141a9060016119ed565b602088015161142b906127106117d8565b61143591906117ef565b9050606460008f600181111561144d5761144d611944565b14611458578161145a565b825b61146490876117d8565b61146e91906117ef565b9550505050505b81868581518110611488576114886119d7565b602090810291909101015261149d82886119ed565b9650808585815181106114b2576114b26119d7565b60200260200101818152505050505080806114cc90611a77565b915050611078565b50826000036114e257600192505b604080516060810182529283526020830193909352918101919091529392505050565b6000606482111561156e5760405162461bcd60e51b815260206004820152602d60248201527f506f6f6c4c6962726172793a207870206f7574206f662072616e67652028302060448201526c3c3d207870203c3d203130302960981b60648201526084016101d3565b603d82101561157f57506032919050565b604080516105008101825260338082526020820181905291810182905260608101919091526034608080830191909152603560a080840182905260c0840191909152603660e084015260376101008401526039610120840152603a610140840152603c610160840152603f61018084015260426101a084015260456101c0840152604a6101e0840152604f6102008401526055610220840152605c6102408401526063610260840152606c61028084015260766102a08401526102c0830191909152608b6102e0830152609661030083015261032082015260ab61034082015260b561036082015260bf61038082015260c86103a082015260cf6103c082015260d66103e082015260dc61040082015260e161042082015260e661044082015260e961046082015260ec61048082015260ef6104a082015260f16104c082015260f26104e0820152806116d3603d8561195a565b602881106116e3576116e36119d7565b602002015160ff169392505050565b6001600160a01b038116811461170757600080fd5b50565b6000806040838503121561171d57600080fd5b8235611728816116f2565b946020939093013593505050565b60006020828403121561174857600080fd5b5035919050565b6000806040838503121561176257600080fd5b823591506020830135611774816116f2565b809150509250929050565b60208082526023908201527f506f6f6c3a204f6e6c792063616c6c61626c65206279204e465420636f6e74726040820152621858dd60ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105b8576105b86117c2565b60008261180c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561182357600080fd5b81518015158114610f4b57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006060828403121561185b57600080fd5b6040516060810181811067ffffffffffffffff8211171561188c57634e487b7160e01b600052604160045260246000fd5b80604052508251815260208301516020820152604083015160408201528091505092915050565b6000602082840312156118c557600080fd5b8151610f4b816116f2565b6000600160ff1b82016118e5576118e56117c2565b5060000390565b6001600160a01b038416815260a0810161191d60208301858051825260208082015190830152604090810151910152565b826080830152949350505050565b60006020828403121561193d57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b818103818111156105b8576105b86117c2565b805169ffffffffffffffffffff811681146107cd57600080fd5b600080600080600060a0868803121561199f57600080fd5b6119a88661196d565b94506020860151935060408601519250606086015191506119cb6080870161196d565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b808201808211156105b8576105b86117c2565b8181036000831280158383131683831282161715611a2057611a206117c2565b5092915050565b8082018281126000831280158216821582161715611a4757611a476117c2565b505092915050565b82815260808101610f4b60208301848051825260208082015190830152604090810151910152565b600060018201611a8957611a896117c2565b506001019056fea264697066735822122025459ec7482c51aa0aa41ae495f2ddfa087488b31e96c8d08884205fd44aa3fd64736f6c63430008110033", - "sourceMap": "275:8608:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7792:250;;;;;;;;;;-1:-1:-1;7792:250:27;;;;;:::i;:::-;;:::i;:::-;;421:24;;;;;;;;;;;;;;;;;;;616:25:39;;;604:2;589:18;421:24:27;;;;;;;;450:17;;;;;;;;;;-1:-1:-1;450:17:27;;;;-1:-1:-1;;;;;450:17:27;;;;;;-1:-1:-1;;;;;831:32:39;;;813:51;;801:2;786:18;450:17:27;652:218:39;471:16:27;;;;;;;;;;-1:-1:-1;471:16:27;;;;-1:-1:-1;;;;;471:16:27;;;7550:118;;;;;;;;;;-1:-1:-1;7550:118:27;;;;;:::i;:::-;;:::i;8224:657::-;;;;;;:::i;:::-;;:::i;7672:116::-;;;;;;;;;;-1:-1:-1;7672:116:27;;;;;:::i;:::-;;:::i;7199:347::-;;;;;;:::i;:::-;;:::i;2434:809::-;;;;;;;;;;;;;:::i;7792:250::-;934:4;;-1:-1:-1;;;;;934:4:27;912:10;:27;904:75;;;;-1:-1:-1;;;904:75:27;;;;;;;:::i;:::-;;;;;;;;;7870:4:::1;::::0;:17:::1;::::0;-1:-1:-1;;;7870:17:27;;::::1;::::0;::::1;616:25:39::0;;;-1:-1:-1;;;;;7870:4:27;;::::1;::::0;:9:::1;::::0;589:18:39;;7870:17:27::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7948:13;7983:12:::0;::::1;7964:6;7971:9;7964:16;;;;:::i;:::-;:31;;;;:::i;:::-;8001:36;::::0;7948:47;;-1:-1:-1;;;;;;8001:26:27;::::1;::::0;:36;::::1;;;::::0;7948:47;;8001:36:::1;::::0;;;7948:47;8001:26;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7864:178;7792:250:::0;;:::o;7550:118::-;934:4;;-1:-1:-1;;;;;934:4:27;912:10;:27;904:75;;;;-1:-1:-1;;;904:75:27;;;;;;;:::i;:::-;7611:4:::1;::::0;:52:::1;::::0;-1:-1:-1;;;7611:52:27;;7629:10:::1;7611:52;::::0;::::1;2773:34:39::0;7649:4:27::1;2823:18:39::0;;;2816:43;2875:18;;;2868:34;;;-1:-1:-1;;;;;7611:4:27;;::::1;::::0;:17:::1;::::0;2708:18:39;;7611:52:27::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7550:118:::0;:::o;8224:657::-;8327:4;;:16;;-1:-1:-1;;;8327:16:27;;;;;616:25:39;;;8292:4:27;;;;-1:-1:-1;;;;;8327:4:27;;;;:12;;589:18:39;;8327:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8430:4;;:16;;-1:-1:-1;;;8430:16:27;;;;;616:25:39;;;8304:39:27;;-1:-1:-1;;;;;;8415:42:27;;;;8430:4;;;:12;;589:18:39;;8430:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8415:42:27;8426:2;8415:42;;;;;;;;;;8464:4;;:13;;-1:-1:-1;;;8464:13:27;;;;;616:25:39;;;-1:-1:-1;;;;;8464:4:27;;;;:9;;589:18:39;;8464:13:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8517:1;8503:3;:11;;;:15;8495:57;;;;-1:-1:-1;;;8495:57:27;;4444:2:39;8495:57:27;;;4426:21:39;4483:2;4463:18;;;4456:30;4522:31;4502:18;;;4495:59;4571:18;;8495:57:27;4242:353:39;8495:57:27;8692:16;8745:9;8732:12;;8717:3;:11;;;8716:12;;;:::i;:::-;8711:33;;;;:::i;:::-;:43;;;;:::i;:::-;8814:4;;:62;;-1:-1:-1;;;8814:62:27;;8692;;-1:-1:-1;;;;;;8814:4:27;;:16;;8838:9;;8814:62;;8849:8;;8859:3;;8692:62;;8814;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8807:69;;;;8224:657;;;;;:::o;7672:116::-;934:4;;-1:-1:-1;;;;;934:4:27;912:10;:27;904:75;;;;-1:-1:-1;;;904:75:27;;;;;;;:::i;:::-;7752:4:::1;::::0;:31:::1;::::0;-1:-1:-1;;;7752:31:27;;-1:-1:-1;;;;;5738:32:39;;;7752:31:27::1;::::0;::::1;5720:51:39::0;5787:18;;;5780:34;;;7752:4:27;;::::1;::::0;:13:::1;::::0;5693:18:39;;7752:31:27::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7672:116:::0;;:::o;7199:347::-;934:4;;7275;;-1:-1:-1;;;;;934:4:27;912:10;:27;904:75;;;;-1:-1:-1;;;904:75:27;;;;;;;:::i;:::-;7307:1:::1;7295:9;:13;7287:57;;;::::0;-1:-1:-1;;;7287:57:27;;6027:2:39;7287:57:27::1;::::0;::::1;6009:21:39::0;6066:2;6046:18;;;6039:30;6105:33;6085:18;;;6078:61;6156:18;;7287:57:27::1;5825:355:39::0;7287:57:27::1;7350:12;7400:9;7390;7370:16;:14;:16::i;:::-;7365:34;;;;:::i;:::-;:44;;;;:::i;:::-;7350:59;;7434:9;7423:7;:20;;7415:70;;;::::0;-1:-1:-1;;;7415:70:27;;6387:2:39;7415:70:27::1;::::0;::::1;6369:21:39::0;6426:2;6406:18;;;6399:30;6465:34;6445:18;;;6438:62;-1:-1:-1;;;6516:18:39;;;6509:35;6561:19;;7415:70:27::1;6185:401:39::0;7415:70:27::1;7491:4;::::0;:30:::1;::::0;-1:-1:-1;;;7491:30:27;;7501:10:::1;7491:30;::::0;::::1;5720:51:39::0;5787:18;;;5780:34;;;-1:-1:-1;;;;;7491:4:27;;::::1;::::0;:9:::1;::::0;5693:18:39;;7491:30:27::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7534:7:27;;-1:-1:-1;;;;985:1:27::1;7199:347:::0;;;:::o;2434:809::-;2466:4;2478:16;2502;:14;:16::i;:::-;2478:41;;2561:9;2587:12;;2573:11;:26;:100;;2661:12;2573:100;;;2602:12;2573:100;2561:112;;2732:14;2767:12;;2749:11;2761:5;2749:17;;;;:::i;:::-;:30;;;;:::i;:::-;2732:47;-1:-1:-1;2857:12:27;2849:4;:20;;;;;;;;:::i;:::-;;:100;;2931:18;2944:5;2931:18;;:::i;:::-;;;;2849:100;;;2885:17;2893:9;2885:5;:17;:::i;:::-;2872:30;;;2849:100;;2995:14;3012:27;3023:9;3034:4;3012:10;:27::i;:::-;2995:44;-1:-1:-1;3054:12:27;3046:4;:20;;;;;;;;:::i;:::-;;:107;;3133:4;;:20;;-1:-1:-1;;;3133:20:27;;;;;616:25:39;;;-1:-1:-1;;;;;3133:4:27;;;;:9;;589:18:39;;3133:20:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3046:107;;;3069:4;;:35;;-1:-1:-1;;;3069:35:27;;3087:4;3069:35;;;5720:51:39;5787:18;;;5780:34;;;-1:-1:-1;;;;;3069:4:27;;;;:9;;5693:18:39;;3069:35:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3046:107;3160:12;:26;;;3197:19;;616:25:39;;;3197:19:27;;604:2:39;589:18;3197:19:27;;;;;;;3229:9;2434:809;-1:-1:-1;;;;2434:809:27:o;1686:180::-;1834:9;;:27;;;-1:-1:-1;;;1834:27:27;;;;1735:15;;-1:-1:-1;;;;;1834:9:27;;:25;;:27;;;;;;;;;;;;;;:9;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1809:52:27;;1686:180;-1:-1:-1;;;;1686:180:27:o;3416:2160::-;3765:4;;:18;;;-1:-1:-1;;;3765:18:27;;;;3480:4;;;;;;3740:55;;-1:-1:-1;;;;;3765:4:27;;:16;;:18;;;;;;;;;;;;;;:4;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3785:9;3740:24;:55::i;:::-;3723:72;;3802:20;3825:16;3836:4;3825:10;:16::i;:::-;4039:4;;:13;;;-1:-1:-1;;;4039:13:27;;;;3802:39;;-1:-1:-1;;;4003:17:27;3990:10;;-1:-1:-1;;;;;4039:4:27;;:11;;:13;;;;;;;;;;;;;;:4;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4026:26;;4064:6;4059:1419;4080:4;;;;;;;;;-1:-1:-1;;;;;4080:4:27;-1:-1:-1;;;;;4080:16:27;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4076:1;:22;4059:1419;;;4128:4;;:20;;-1:-1:-1;;;4128:20:27;;;;;616:25:39;;;4113:12:27;;-1:-1:-1;;;;;4128:4:27;;:17;;589:18:39;;4128:20:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4113:35;;4199:18;4252:6;:23;;;4220:6;:20;;;4241:1;4220:23;;;;;;;;:::i;:::-;;;;;;;4244:5;4220:29;;;;:::i;:::-;:55;;;;:::i;:::-;4199:76;;4325:22;4350:50;4375:9;4386:13;4350:24;:50::i;:::-;4432:4;;:21;;-1:-1:-1;;;4432:21:27;;;;;616:25:39;;;4325:75:27;;-1:-1:-1;4409:20:27;;-1:-1:-1;;;;;4432:4:27;;;;:12;;589:18:39;;4432:21:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4409:44;-1:-1:-1;4517:14:27;;4602:4;:20;;;;;;;;:::i;:::-;;:39;;;;;4640:1;4626:3;:11;;;:15;4602:39;4598:374;;;4716:6;:15;;;4732:1;4716:18;;;;;;;;:::i;:::-;;;;;;;4691:17;4709:3;4691:21;;;;:::i;:::-;:44;;;;:::i;:::-;4679:56;;4805:9;4804:10;:49;;;;-1:-1:-1;4832:4:27;;:21;;-1:-1:-1;;;4832:21:27;;;;;616:25:39;;;-1:-1:-1;;;;;4832:4:27;;;;:12;;589:18:39;;4832:21:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4818:35:27;:10;-1:-1:-1;;;;;4818:35:27;;4804:49;4800:164;;;4879:4;4867:16;;4908:36;4933:3;:6;;;4941:2;4908:24;:36::i;:::-;4895:49;;;;:::i;:::-;;;4800:164;5024:12;5016:4;:20;;;;;;;;:::i;:::-;;5012:234;;5067:17;5048:3;:11;;:37;;;;;;;:::i;:::-;;;-1:-1:-1;5095:6:27;;;:24;;5110:9;;5095:6;:24;;5110:9;;5095:24;:::i;:::-;;;-1:-1:-1;5012:234:27;;;5219:17;5200:3;:11;;:37;;;;;;;:::i;:::-;;;-1:-1:-1;5012:234:27;5285:4;;:28;;-1:-1:-1;;;5285:28:27;;-1:-1:-1;;;;;5285:4:27;;;;:14;;:28;;5300:7;;5309:3;;5285:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5400:5;5391:3;:6;;;:14;5387:39;;;5417:3;:6;;;5409:14;;5387:39;5446:5;5437:3;:6;;;:14;5433:39;;;5463:3;:6;;;5455:14;;5433:39;4105:1373;;;;;4100:3;;;;;:::i;:::-;;;;4059:1419;;;-1:-1:-1;5522:4:27;;:27;;-1:-1:-1;;;5522:27:27;;;;;8833:25:39;;;8874:18;;;8867:34;;;-1:-1:-1;;;;;5522:4:27;;;;:13;;8806:18:39;;5522:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5562:9:27;;3416:2160;-1:-1:-1;;;;;;;;;;3416:2160:27:o;240:166:28:-;311:4;396:5;382:13;384:11;382:1;:13;:::i;:::-;:19;;;;:::i;:::-;375:26;240:166;-1:-1:-1;;;240:166:28:o;5646:1523:27:-;5694:13;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;5694:13:27;5737:4;;:18;;;-1:-1:-1;;;5737:18:27;;;;5715:19;;-1:-1:-1;;;;;5737:4:27;;:16;;:18;;;;;;;;;;;;;;:4;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5715:40;;5761:21;5788:27;5829:14;5818:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5818:26:27;;5788:56;;5850:22;5891:14;5880:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5880:26:27;;5850:56;;5918:6;5913:1088;5934:14;5930:1;:18;5913:1088;;;6015:4;;6028:20;;-1:-1:-1;;;6028:20:27;;;;;616:25:39;;;5992:20:27;;-1:-1:-1;;;;;6015:4:27;;:12;;:4;;6028:17;;589:18:39;;6028:20:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6015:34;;;;;;;;;;;;;616:25:39;;604:2;589:18;;470:177;6015:34:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5992:57;;6058:17;6099:12;6159:1;6145:3;:11;;;:15;6141:736;;;6288:4;;:13;;;-1:-1:-1;;;6288:13:27;;;;6256:12;;-1:-1:-1;;;;;6288:4:27;;:11;;:13;;;;;;;;;;;;;;:4;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6272:4;;;;;;;;;-1:-1:-1;;;;;6272:4:27;-1:-1:-1;;;;;6272:11:27;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;;;:::i;:::-;6256:45;;6315:7;6326:1;6315:12;6311:34;;-1:-1:-1;6341:1:27;6311:34;6377:13;6424:7;6401:4;;;;;;;;;-1:-1:-1;;;;;6401:4:27;-1:-1:-1;;;;;6401:11:27;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6394:3;:6;;;:20;;;;:::i;:::-;6393:28;;6416:5;6393:28;:::i;:::-;:38;;;;:::i;:::-;6377:54;;6441:18;6524:14;6505:4;;;;;;;;;-1:-1:-1;;;;;6505:4:27;-1:-1:-1;;;;;6505:16:27;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;;;:::i;:::-;:35;;6539:1;6505:35;:::i;:::-;6482:11;;;;6463:13;;:31;;6482:11;6463:31;:::i;:::-;6462:39;;6496:5;6462:39;:::i;:::-;:79;;;;:::i;:::-;6441:100;-1:-1:-1;6561:36:27;6584:12;6593:3;6584:8;:12;:::i;:::-;6561:22;:36::i;:::-;6551:46;-1:-1:-1;6619:12:27;6611:4;:20;;;;;;;;:::i;:::-;;6607:52;;6645:11;6649:7;6645:3;:11;:::i;:::-;6635:21;;6607:52;6758:13;;6745:11;;;;6693:17;;6740:31;;;:::i;:::-;:33;;6772:1;6740:33;:::i;:::-;6718:11;;;;6713:23;;6731:5;6713:23;:::i;:::-;:61;;;;:::i;:::-;6693:81;-1:-1:-1;6865:3:27;6818:12;6810:4;:20;;;;;;;;:::i;:::-;;:51;;6849:12;6810:51;;;6833:13;6810:51;6799:63;;:7;:63;:::i;:::-;:69;;;;:::i;:::-;6784:84;;6162:715;;;;6141:736;6906:12;6886:13;6900:1;6886:16;;;;;;;;:::i;:::-;;;;;;;;;;:32;6926:33;6947:12;6926:33;;:::i;:::-;;;6987:7;6967:8;6976:1;6967:11;;;;;;;;:::i;:::-;;;;;;:27;;;;;5955:1046;;;5950:3;;;;;:::i;:::-;;;;5913:1088;;;;7054:16;7074:1;7054:21;7050:52;;7098:1;7079:20;;7050:52;7115:49;;;;;;;;;;;;;;;;;;;;;;;;;;5646:1523;-1:-1:-1;;;5646:1523:27:o;410:993:28:-;462:4;630:3;624:2;:9;;605:78;;;;-1:-1:-1;;;605:78:28;;9114:2:39;605:78:28;;;9096:21:39;9153:2;9133:18;;;9126:30;9192:34;9172:18;;;9165:62;-1:-1:-1;;;9243:18:39;;;9236:43;9296:19;;605:78:28;8912:409:39;605:78:28;951:2;946;:7;942:457;;;-1:-1:-1;970:2:28;;410:993;-1:-1:-1;410:993:28:o;942:457::-;993:366;;;;;;;;1022:2;993:366;;;;;;;;;;;;;;;;;;;;;;1042:2;993:366;;;;;;;;1047:2;993:366;;;;;;;;;;;;;;1057:2;993:366;;;;1062:2;993:366;;;;1101:2;993:366;;;;1106:2;993:366;;;;1111:2;993:366;;;;1116:2;993:366;;;;1121:2;993:366;;;;1126:2;993:366;;;;1131:2;993:366;;;;1136:2;993:366;;;;1141:2;993:366;;;;1180:2;993:366;;;;1185:2;993:366;;;;1190:3;993:366;;;;1195:3;993:366;;;;;;;;;;;1205:3;993:366;;;;1210:3;993:366;;;;;;;;1220:3;993:366;;;;1260:3;993:366;;;;1265:3;993:366;;;;1270:3;993:366;;;;1275:3;993:366;;;;1280:3;993:366;;;;1285:3;993:366;;;;1290:3;993:366;;;;1295:3;993:366;;;;1300:3;993:366;;;;1340:3;993:366;;;;1345:3;993:366;;;;1350:3;993:366;;;;1355:3;993:366;;;;;1383:7;1388:2;1383;:7;:::i;:::-;1374:17;;;;;;;:::i;:::-;;;;;1367:24;;;410:993;-1:-1:-1;;;410:993:28:o;14:131:39:-;-1:-1:-1;;;;;89:31:39;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:315::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:39:o;1097:180::-;1156:6;1209:2;1197:9;1188:7;1184:23;1180:32;1177:52;;;1225:1;1222;1215:12;1177:52;-1:-1:-1;1248:23:39;;1097:180;-1:-1:-1;1097:180:39:o;1282:315::-;1350:6;1358;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;1463:9;1450:23;1440:33;;1523:2;1512:9;1508:18;1495:32;1536:31;1561:5;1536:31;:::i;:::-;1586:5;1576:15;;;1282:315;;;;;:::o;1602:399::-;1804:2;1786:21;;;1843:2;1823:18;;;1816:30;1882:34;1877:2;1862:18;;1855:62;-1:-1:-1;;;1948:2:39;1933:18;;1926:33;1991:3;1976:19;;1602:399::o;2006:127::-;2067:10;2062:3;2058:20;2055:1;2048:31;2098:4;2095:1;2088:15;2122:4;2119:1;2112:15;2138:168;2211:9;;;2242;;2259:15;;;2253:22;;2239:37;2229:71;;2280:18;;:::i;2311:217::-;2351:1;2377;2367:132;;2421:10;2416:3;2412:20;2409:1;2402:31;2456:4;2453:1;2446:15;2484:4;2481:1;2474:15;2367:132;-1:-1:-1;2513:9:39;;2311:217::o;2913:277::-;2980:6;3033:2;3021:9;3012:7;3008:23;3004:32;3001:52;;;3049:1;3046;3039:12;3001:52;3081:9;3075:16;3134:5;3127:13;3120:21;3113:5;3110:32;3100:60;;3156:1;3153;3146:12;3195:127;3256:10;3251:3;3247:20;3244:1;3237:31;3287:4;3284:1;3277:15;3311:4;3308:1;3301:15;3327:654;3419:6;3472:2;3460:9;3451:7;3447:23;3443:32;3440:52;;;3488:1;3485;3478:12;3440:52;3521:2;3515:9;3563:2;3555:6;3551:15;3632:6;3620:10;3617:22;3596:18;3584:10;3581:34;3578:62;3575:185;;;3682:10;3677:3;3673:20;3670:1;3663:31;3717:4;3714:1;3707:15;3745:4;3742:1;3735:15;3575:185;3780:10;3776:2;3769:22;;3821:9;3815:16;3807:6;3800:32;3886:2;3875:9;3871:18;3865:25;3860:2;3852:6;3848:15;3841:50;3945:2;3934:9;3930:18;3924:25;3919:2;3911:6;3907:15;3900:50;3969:6;3959:16;;;3327:654;;;;:::o;3986:251::-;4056:6;4109:2;4097:9;4088:7;4084:23;4080:32;4077:52;;;4125:1;4122;4115:12;4077:52;4157:9;4151:16;4176:31;4201:5;4176:31;:::i;4600:136::-;4635:3;-1:-1:-1;;;4656:22:39;;4653:48;;4681:18;;:::i;:::-;-1:-1:-1;4721:1:39;4717:13;;4600:136::o;4946:406::-;-1:-1:-1;;;;;5211:32:39;;5193:51;;5180:3;5165:19;;5253:49;5298:2;5283:18;;5275:6;4810:12;;4798:25;;4872:4;4861:16;;;4855:23;4839:14;;;4832:47;4928:4;4917:16;;;4911:23;4895:14;;4888:47;4741:200;5253:49;5339:6;5333:3;5322:9;5318:19;5311:35;4946:406;;;;;;:::o;5357:184::-;5427:6;5480:2;5468:9;5459:7;5455:23;5451:32;5448:52;;;5496:1;5493;5486:12;5448:52;-1:-1:-1;5519:16:39;;5357:184;-1:-1:-1;5357:184:39:o;6591:127::-;6652:10;6647:3;6643:20;6640:1;6633:31;6683:4;6680:1;6673:15;6707:4;6704:1;6697:15;6723:128;6790:9;;;6811:11;;;6808:37;;;6825:18;;:::i;6856:179::-;6934:13;;6987:22;6976:34;;6966:45;;6956:73;;7025:1;7022;7015:12;7040:473;7143:6;7151;7159;7167;7175;7228:3;7216:9;7207:7;7203:23;7199:33;7196:53;;;7245:1;7242;7235:12;7196:53;7268:39;7297:9;7268:39;:::i;:::-;7258:49;;7347:2;7336:9;7332:18;7326:25;7316:35;;7391:2;7380:9;7376:18;7370:25;7360:35;;7435:2;7424:9;7420:18;7414:25;7404:35;;7458:49;7502:3;7491:9;7487:19;7458:49;:::i;:::-;7448:59;;7040:473;;;;;;;;:::o;7518:127::-;7579:10;7574:3;7570:20;7567:1;7560:31;7610:4;7607:1;7600:15;7634:4;7631:1;7624:15;7650:125;7715:9;;;7736:10;;;7733:36;;;7749:18;;:::i;7780:200::-;7846:9;;;7819:4;7874:9;;7902:10;;7914:12;;;7898:29;7937:12;;;7929:21;;7895:56;7892:82;;;7954:18;;:::i;:::-;7892:82;7780:200;;;;:::o;7985:216::-;8049:9;;;8077:11;;;8024:3;8107:9;;8135:10;;8131:19;;8160:10;;8152:19;;8128:44;8125:70;;;8175:18;;:::i;:::-;8125:70;;7985:216;;;;:::o;8206:308::-;8425:25;;;8412:3;8397:19;;8459:49;8504:2;8489:18;;8481:6;4810:12;;4798:25;;4872:4;4861:16;;;4855:23;4839:14;;;4832:47;4928:4;4917:16;;;4911:23;4895:14;;4888:47;4741:200;8519:135;8558:3;8579:17;;;8576:43;;8599:18;;:::i;:::-;-1:-1:-1;8646:1:39;8635:13;;8519:135::o", - "linkReferences": {} - }, - "methodIdentifiers": { - "claim(uint256,address)": "ddd5e1b2", - "deposit(uint256)": "b6b55f25", - "dnft()": "926fe324", - "dyad()": "add95a51", - "lastEthPrice()": "7038fc4e", - "mintDyad(uint256)": "fb9103cc", - "redeem(address,uint256)": "1e9a6950", - "sync()": "fff6cae9", - "withdraw(address,uint256)": "f3fef3a3" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dnft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dyad\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"NftClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newEthPrice\",\"type\":\"uint256\"}],\"name\":\"Synced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dnft\",\"outputs\":[{\"internalType\":\"contract IdNFT\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dyad\",\"outputs\":[{\"internalType\":\"contract DYAD\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastEthPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"}],\"name\":\"mintDyad\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Pool.sol\":\"Pool\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b394e20d57877a825c24c1841e219d6ab1e41decec060ea935422ac9b7a25f8a\",\"dweb:/ipfs/QmVTaGCMR4Gi9w1LUVVcjEJHrHF2qcr1avFkLtsLD6sEAr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/Pool.sol\":{\"keccak256\":\"0x51f4ae017bc7fb797e440315cd7f1e865cae415b5aef4f439f31eb9b37410c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0cddb881ffca610ffc4f99f2bcaeef8aafaeb378a7a3d448f97b350d92d6c2b\",\"dweb:/ipfs/QmTvs8Uz9rFDqSAyHfhcUtT9BYWCSJr3UygFQtCk6ZmirX\"]},\"src/PoolLibrary.sol\":{\"keccak256\":\"0x6db066bc87d226de8531921b3a20785236daf36448492370a010d0c67691e64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://802af3029520e39c21bbb3b776f6acb218d2d9c7e6edc75e448074766573cfa5\",\"dweb:/ipfs/QmdXYGuE6yaApzFY3jbsdhGC2pbx9BAJMYSQvXQVSB7aRN\"]},\"src/dyad.sol\":{\"keccak256\":\"0x33a2cd63d49a5ad63f4655c1f7037f23888acdda57ebd359e5985c964094fe62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://580710339478fb3dc5ebad8797a86ac760afeaef3f738359c52476d4fe1e5aea\",\"dweb:/ipfs/QmaioD8uwE54otpueiuAzdQ66JArwwVRausxYExxaSKW7H\"]},\"src/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x04e226f725931178d0f6cce7c785d5e45cff7a2af22603822f28522477f7db17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ccbf7e527c9222c2b3379d6507e3051b9dbf0e1c3635831caac9d9ff2ae7af\",\"dweb:/ipfs/QmViagqveBEi3ADBQrthdkWfcCwkxtKGwN7z24r38n5ZBY\"]},\"src/interfaces/IdNFT.sol\":{\"keccak256\":\"0x3bfd70ee19625ac17f78152d7cabf7e55d0682f15f42d003b9469f58f158aaa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3f2c8761ed8909fbacc1ee2a90352c7829fd273dd6cc0ba8905b0009d97cd83\",\"dweb:/ipfs/QmY6RgCTREf7bqvLHVqnrY1wjTzriTms71JpBRJm88VZo6\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.17+commit.8df45f5f" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_dnft", - "type": "address" - }, - { - "internalType": "address", - "name": "_dyad", - "type": "address" - }, - { - "internalType": "address", - "name": "oracle", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "address", - "name": "from", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "NftClaimed", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newEthPrice", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Synced", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "claim", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "dnft", - "outputs": [ - { - "internalType": "contract IdNFT", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "dyad", - "outputs": [ - { - "internalType": "contract DYAD", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "lastEthPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minAmount", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "mintDyad", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "redeem" - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "sync", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "withdraw" - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@openzeppelin/=lib/openzeppelin-contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/Pool.sol": "Pool" - }, - "libraries": {} - }, - "sources": { - "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": { - "keccak256": "0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d", - "urls": [ - "bzz-raw://b394e20d57877a825c24c1841e219d6ab1e41decec060ea935422ac9b7a25f8a", - "dweb:/ipfs/QmVTaGCMR4Gi9w1LUVVcjEJHrHF2qcr1avFkLtsLD6sEAr" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b", - "urls": [ - "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34", - "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol": { - "keccak256": "0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b", - "urls": [ - "bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f", - "dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", - "urls": [ - "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", - "dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Context.sol": { - "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", - "urls": [ - "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", - "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" - ], - "license": "MIT" - }, - "src/Pool.sol": { - "keccak256": "0x51f4ae017bc7fb797e440315cd7f1e865cae415b5aef4f439f31eb9b37410c8b", - "urls": [ - "bzz-raw://a0cddb881ffca610ffc4f99f2bcaeef8aafaeb378a7a3d448f97b350d92d6c2b", - "dweb:/ipfs/QmTvs8Uz9rFDqSAyHfhcUtT9BYWCSJr3UygFQtCk6ZmirX" - ], - "license": "MIT" - }, - "src/PoolLibrary.sol": { - "keccak256": "0x6db066bc87d226de8531921b3a20785236daf36448492370a010d0c67691e64c", - "urls": [ - "bzz-raw://802af3029520e39c21bbb3b776f6acb218d2d9c7e6edc75e448074766573cfa5", - "dweb:/ipfs/QmdXYGuE6yaApzFY3jbsdhGC2pbx9BAJMYSQvXQVSB7aRN" - ], - "license": "MIT" - }, - "src/dyad.sol": { - "keccak256": "0x33a2cd63d49a5ad63f4655c1f7037f23888acdda57ebd359e5985c964094fe62", - "urls": [ - "bzz-raw://580710339478fb3dc5ebad8797a86ac760afeaef3f738359c52476d4fe1e5aea", - "dweb:/ipfs/QmaioD8uwE54otpueiuAzdQ66JArwwVRausxYExxaSKW7H" - ], - "license": "MIT" - }, - "src/interfaces/AggregatorV3Interface.sol": { - "keccak256": "0x04e226f725931178d0f6cce7c785d5e45cff7a2af22603822f28522477f7db17", - "urls": [ - "bzz-raw://85ccbf7e527c9222c2b3379d6507e3051b9dbf0e1c3635831caac9d9ff2ae7af", - "dweb:/ipfs/QmViagqveBEi3ADBQrthdkWfcCwkxtKGwN7z24r38n5ZBY" - ], - "license": "MIT" - }, - "src/interfaces/IdNFT.sol": { - "keccak256": "0x3bfd70ee19625ac17f78152d7cabf7e55d0682f15f42d003b9469f58f158aaa9", - "urls": [ - "bzz-raw://f3f2c8761ed8909fbacc1ee2a90352c7829fd273dd6cc0ba8905b0009d97cd83", - "dweb:/ipfs/QmY6RgCTREf7bqvLHVqnrY1wjTzriTms71JpBRJm88VZo6" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/Pool.sol", - "id": 27887, - "exportedSymbols": { - "DYAD": [ - 28779 - ], - "IAggregatorV3": [ - 28825 - ], - "IdNFT": [ - 29032 - ], - "Pool": [ - 27886 - ], - "PoolLibrary": [ - 27986 - ] - }, - "nodeType": "SourceUnit", - "src": "32:8852:27", - "nodes": [ - { - "id": 27070, - "nodeType": "PragmaDirective", - "src": "32:24:27", - "nodes": [], - "literals": [ - "solidity", - "^", - "0.8", - ".13" - ] - }, - { - "id": 27072, - "nodeType": "ImportDirective", - "src": "58:37:27", - "nodes": [], - "absolutePath": "src/dyad.sol", - "file": "../src/dyad.sol", - "nameLocation": "-1:-1:-1", - "scope": 27887, - "sourceUnit": 28780, - "symbolAliases": [ - { - "foreign": { - "id": 27071, - "name": "DYAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28779, - "src": "66:4:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 27074, - "nodeType": "ImportDirective", - "src": "96:74:27", - "nodes": [], - "absolutePath": "src/interfaces/AggregatorV3Interface.sol", - "file": "../src/interfaces/AggregatorV3Interface.sol", - "nameLocation": "-1:-1:-1", - "scope": 27887, - "sourceUnit": 28826, - "symbolAliases": [ - { - "foreign": { - "id": 27073, - "name": "IAggregatorV3", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28825, - "src": "104:13:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 27076, - "nodeType": "ImportDirective", - "src": "171:50:27", - "nodes": [], - "absolutePath": "src/interfaces/IdNFT.sol", - "file": "../src/interfaces/IdNFT.sol", - "nameLocation": "-1:-1:-1", - "scope": 27887, - "sourceUnit": 29033, - "symbolAliases": [ - { - "foreign": { - "id": 27075, - "name": "IdNFT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29032, - "src": "179:5:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 27078, - "nodeType": "ImportDirective", - "src": "222:51:27", - "nodes": [], - "absolutePath": "src/PoolLibrary.sol", - "file": "../src/PoolLibrary.sol", - "nameLocation": "-1:-1:-1", - "scope": 27887, - "sourceUnit": 27987, - "symbolAliases": [ - { - "foreign": { - "id": 27077, - "name": "PoolLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27986, - "src": "230:11:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 27886, - "nodeType": "ContractDefinition", - "src": "275:8608:27", - "nodes": [ - { - "id": 27080, - "nodeType": "VariableDeclaration", - "src": "421:24:27", - "nodes": [], - "constant": false, - "functionSelector": "7038fc4e", - "mutability": "mutable", - "name": "lastEthPrice", - "nameLocation": "433:12:27", - "scope": 27886, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "421:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 27083, - "nodeType": "VariableDeclaration", - "src": "450:17:27", - "nodes": [], - "constant": false, - "functionSelector": "926fe324", - "mutability": "mutable", - "name": "dnft", - "nameLocation": "463:4:27", - "scope": 27886, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - }, - "typeName": { - "id": 27082, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27081, - "name": "IdNFT", - "nameLocations": [ - "450:5:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29032, - "src": "450:5:27" - }, - "referencedDeclaration": 29032, - "src": "450:5:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "visibility": "public" - }, - { - "id": 27086, - "nodeType": "VariableDeclaration", - "src": "471:16:27", - "nodes": [], - "constant": false, - "functionSelector": "add95a51", - "mutability": "mutable", - "name": "dyad", - "nameLocation": "483:4:27", - "scope": 27886, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - }, - "typeName": { - "id": 27085, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27084, - "name": "DYAD", - "nameLocations": [ - "471:4:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28779, - "src": "471:4:27" - }, - "referencedDeclaration": 28779, - "src": "471:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "visibility": "public" - }, - { - "id": 27089, - "nodeType": "VariableDeclaration", - "src": "491:32:27", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "514:9:27", - "scope": 27886, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3_$28825", - "typeString": "contract IAggregatorV3" - }, - "typeName": { - "id": 27088, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27087, - "name": "IAggregatorV3", - "nameLocations": [ - "491:13:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28825, - "src": "491:13:27" - }, - "referencedDeclaration": 28825, - "src": "491:13:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3_$28825", - "typeString": "contract IAggregatorV3" - } - }, - "visibility": "internal" - }, - { - "id": 27092, - "nodeType": "EnumDefinition", - "src": "672:29:27", - "nodes": [], - "canonicalName": "Pool.Mode", - "members": [ - { - "id": 27090, - "name": "BURNING", - "nameLocation": "683:7:27", - "nodeType": "EnumValue", - "src": "683:7:27" - }, - { - "id": 27091, - "name": "MINTING", - "nameLocation": "692:7:27", - "nodeType": "EnumValue", - "src": "692:7:27" - } - ], - "name": "Mode", - "nameLocation": "677:4:27" - }, - { - "id": 27096, - "nodeType": "EventDefinition", - "src": "705:32:27", - "nodes": [], - "anonymous": false, - "eventSelector": "ff14d8520387b9b85d2a017dc41ae15db04a22d4c67deac04eb45048631ffa86", - "name": "Synced", - "nameLocation": "711:6:27", - "parameters": { - "id": 27095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27094, - "indexed": false, - "mutability": "mutable", - "name": "newEthPrice", - "nameLocation": "724:11:27", - "nodeType": "VariableDeclaration", - "scope": 27096, - "src": "719:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27093, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "719:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "718:18:27" - } - }, - { - "id": 27104, - "nodeType": "EventDefinition", - "src": "740:76:27", - "nodes": [], - "anonymous": false, - "eventSelector": "62f2b0e4889a8f1f033f49a00b0f19dde517bdf2fd1a73367a71f4b188769cc4", - "name": "NftClaimed", - "nameLocation": "746:10:27", - "parameters": { - "id": 27103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27098, - "indexed": true, - "mutability": "mutable", - "name": "id", - "nameLocation": "770:2:27", - "nodeType": "VariableDeclaration", - "scope": 27104, - "src": "757:15:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27097, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "757:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27100, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nameLocation": "790:4:27", - "nodeType": "VariableDeclaration", - "scope": 27104, - "src": "774:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "774:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27102, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "812:2:27", - "nodeType": "VariableDeclaration", - "scope": 27104, - "src": "796:18:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "796:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "756:59:27" - } - }, - { - "id": 27120, - "nodeType": "ModifierDefinition", - "src": "871:120:27", - "nodes": [], - "body": { - "id": 27119, - "nodeType": "Block", - "src": "898:93:27", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 27114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27108, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "912:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "916:6:27", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "912:10:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "id": 27112, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "934:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - ], - "id": 27111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "926:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 27110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "926:7:27", - "typeDescriptions": {} - } - }, - "id": 27113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "926:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "912:27:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "506f6f6c3a204f6e6c792063616c6c61626c65206279204e465420636f6e7472616374", - "id": 27115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "941:37:27", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_df0d4257ae01990f1757c1011df854adf4e4591be5c3055fb3778bce8ce707db", - "typeString": "literal_string \"Pool: Only callable by NFT contract\"" - }, - "value": "Pool: Only callable by NFT contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_df0d4257ae01990f1757c1011df854adf4e4591be5c3055fb3778bce8ce707db", - "typeString": "literal_string \"Pool: Only callable by NFT contract\"" - } - ], - "id": 27107, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "904:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 27116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "904:75:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27117, - "nodeType": "ExpressionStatement", - "src": "904:75:27" - }, - { - "id": 27118, - "nodeType": "PlaceholderStatement", - "src": "985:1:27" - } - ] - }, - "documentation": { - "id": 27105, - "nodeType": "StructuredDocumentation", - "src": "820:48:27", - "text": "@dev Check if msg.sender is the nft contract" - }, - "name": "onlyNftContract", - "nameLocation": "880:15:27", - "parameters": { - "id": 27106, - "nodeType": "ParameterList", - "parameters": [], - "src": "895:2:27" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 27129, - "nodeType": "StructDefinition", - "src": "1067:356:27", - "nodes": [], - "canonicalName": "Pool.Multis", - "members": [ - { - "constant": false, - "id": 27123, - "mutability": "mutable", - "name": "multiProducts", - "nameLocation": "1303:13:27", - "nodeType": "VariableDeclaration", - "scope": 27129, - "src": "1296:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 27121, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1296:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27122, - "nodeType": "ArrayTypeName", - "src": "1296:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27125, - "mutability": "mutable", - "name": "multiProductsSum", - "nameLocation": "1330:16:27", - "nodeType": "VariableDeclaration", - "scope": 27129, - "src": "1323:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27124, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1323:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27128, - "mutability": "mutable", - "name": "xpMultis", - "nameLocation": "1401:8:27", - "nodeType": "VariableDeclaration", - "scope": 27129, - "src": "1394:15:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 27126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1394:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27127, - "nodeType": "ArrayTypeName", - "src": "1394:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "name": "Multis", - "nameLocation": "1074:6:27", - "scope": 27886, - "visibility": "public" - }, - { - "id": 27165, - "nodeType": "FunctionDefinition", - "src": "1427:213:27", - "nodes": [], - "body": { - "id": 27164, - "nodeType": "Block", - "src": "1485:155:27", - "nodes": [], - "statements": [ - { - "expression": { - "id": 27142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27138, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "1491:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 27140, - "name": "_dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27131, - "src": "1512:5:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27139, - "name": "IdNFT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29032, - "src": "1506:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IdNFT_$29032_$", - "typeString": "type(contract IdNFT)" - } - }, - "id": 27141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1506:12:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "src": "1491:27:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27143, - "nodeType": "ExpressionStatement", - "src": "1491:27:27" - }, - { - "expression": { - "id": 27148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27144, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "1524:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 27146, - "name": "_dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27133, - "src": "1544:5:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27145, - "name": "DYAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28779, - "src": "1539:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DYAD_$28779_$", - "typeString": "type(contract DYAD)" - } - }, - "id": 27147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1539:11:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "src": "1524:26:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27149, - "nodeType": "ExpressionStatement", - "src": "1524:26:27" - }, - { - "expression": { - "id": 27154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27150, - "name": "priceFeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27089, - "src": "1556:9:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3_$28825", - "typeString": "contract IAggregatorV3" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 27152, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27135, - "src": "1585:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27151, - "name": "IAggregatorV3", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28825, - "src": "1571:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAggregatorV3_$28825_$", - "typeString": "type(contract IAggregatorV3)" - } - }, - "id": 27153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1571:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3_$28825", - "typeString": "contract IAggregatorV3" - } - }, - "src": "1556:36:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3_$28825", - "typeString": "contract IAggregatorV3" - } - }, - "id": 27155, - "nodeType": "ExpressionStatement", - "src": "1556:36:27" - }, - { - "expression": { - "id": 27162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27156, - "name": "lastEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27080, - "src": "1598:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 27159, - "name": "getNewEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27178, - "src": "1618:14:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", - "typeString": "function () view returns (int256)" - } - }, - "id": 27160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1618:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1613:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27157, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1613:4:27", - "typeDescriptions": {} - } - }, - "id": 27161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1613:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1598:37:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27163, - "nodeType": "ExpressionStatement", - "src": "1598:37:27" - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 27136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27131, - "mutability": "mutable", - "name": "_dnft", - "nameLocation": "1447:5:27", - "nodeType": "VariableDeclaration", - "scope": 27165, - "src": "1439:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1439:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27133, - "mutability": "mutable", - "name": "_dyad", - "nameLocation": "1462:5:27", - "nodeType": "VariableDeclaration", - "scope": 27165, - "src": "1454:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1454:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27135, - "mutability": "mutable", - "name": "oracle", - "nameLocation": "1477:6:27", - "nodeType": "VariableDeclaration", - "scope": 27165, - "src": "1469:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27134, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1469:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1438:46:27" - }, - "returnParameters": { - "id": 27137, - "nodeType": "ParameterList", - "parameters": [], - "src": "1485:0:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 27178, - "nodeType": "FunctionDefinition", - "src": "1686:180:27", - "nodes": [], - "body": { - "id": 27177, - "nodeType": "Block", - "src": "1752:114:27", - "nodes": [], - "statements": [ - { - "expression": { - "id": 27175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - null, - { - "id": 27170, - "name": "newEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27168, - "src": "1813:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - null, - null, - null - ], - "id": 27171, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "1809:22:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$_t_int256_$__$__$__$", - "typeString": "tuple(,int256,,,)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27172, - "name": "priceFeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27089, - "src": "1834:9:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3_$28825", - "typeString": "contract IAggregatorV3" - } - }, - "id": 27173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1844:15:27", - "memberName": "latestRoundData", - "nodeType": "MemberAccess", - "referencedDeclaration": 28824, - "src": "1834:25:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", - "typeString": "function () view external returns (uint80,int256,uint256,uint256,uint80)" - } - }, - "id": 27174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1834:27:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", - "typeString": "tuple(uint80,int256,uint256,uint256,uint80)" - } - }, - "src": "1809:52:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27176, - "nodeType": "ExpressionStatement", - "src": "1809:52:27" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getNewEthPrice", - "nameLocation": "1695:14:27", - "parameters": { - "id": 27166, - "nodeType": "ParameterList", - "parameters": [], - "src": "1709:2:27" - }, - "returnParameters": { - "id": 27169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27168, - "mutability": "mutable", - "name": "newEthPrice", - "nameLocation": "1739:11:27", - "nodeType": "VariableDeclaration", - "scope": 27178, - "src": "1735:15:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 27167, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "1735:3:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1734:17:27" - }, - "scope": 27886, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 27261, - "nodeType": "FunctionDefinition", - "src": "2434:809:27", - "nodes": [], - "body": { - "id": 27260, - "nodeType": "Block", - "src": "2472:771:27", - "nodes": [], - "statements": [ - { - "assignments": [ - 27184 - ], - "declarations": [ - { - "constant": false, - "id": 27184, - "mutability": "mutable", - "name": "newEthPrice", - "nameLocation": "2483:11:27", - "nodeType": "VariableDeclaration", - "scope": 27260, - "src": "2478:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27183, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2478:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27190, - "initialValue": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 27187, - "name": "getNewEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27178, - "src": "2502:14:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", - "typeString": "function () view returns (int256)" - } - }, - "id": 27188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2502:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2497:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27185, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2497:4:27", - "typeDescriptions": {} - } - }, - "id": 27189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2497:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2478:41:27" - }, - { - "assignments": [ - 27193 - ], - "declarations": [ - { - "constant": false, - "id": 27193, - "mutability": "mutable", - "name": "mode", - "nameLocation": "2566:4:27", - "nodeType": "VariableDeclaration", - "scope": 27260, - "src": "2561:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "typeName": { - "id": 27192, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27191, - "name": "Mode", - "nameLocations": [ - "2561:4:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27092, - "src": "2561:4:27" - }, - "referencedDeclaration": 27092, - "src": "2561:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "visibility": "internal" - } - ], - "id": 27202, - "initialValue": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27194, - "name": "newEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27184, - "src": "2573:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 27195, - "name": "lastEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27080, - "src": "2587:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2573:26:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 27199, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "2661:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2666:7:27", - "memberName": "BURNING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27090, - "src": "2661:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "id": 27201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2573:100:27", - "trueExpression": { - "expression": { - "id": 27197, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "2602:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2607:7:27", - "memberName": "MINTING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27091, - "src": "2602:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2561:112:27" - }, - { - "assignments": [ - 27204 - ], - "declarations": [ - { - "constant": false, - "id": 27204, - "mutability": "mutable", - "name": "ethChange", - "nameLocation": "2737:9:27", - "nodeType": "VariableDeclaration", - "scope": 27260, - "src": "2732:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27203, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2732:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27210, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27205, - "name": "newEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27184, - "src": "2749:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3130303030", - "id": 27206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2761:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "2749:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 27208, - "name": "lastEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27080, - "src": "2767:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2749:30:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2732:47:27" - }, - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "id": 27214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27211, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27193, - "src": "2849:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 27212, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "2857:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27213, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2862:7:27", - "memberName": "BURNING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27090, - "src": "2857:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "src": "2849:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 27222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27220, - "name": "ethChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27204, - "src": "2931:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "hexValue": "3130303030", - "id": 27221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2944:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "2931:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2849:100:27", - "trueExpression": { - "id": 27219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27215, - "name": "ethChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27204, - "src": "2872:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130303030", - "id": 27216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2885:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 27217, - "name": "ethChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27204, - "src": "2893:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2885:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2872:30:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27224, - "nodeType": "ExpressionStatement", - "src": "2849:100:27" - }, - { - "assignments": [ - 27226 - ], - "declarations": [ - { - "constant": false, - "id": 27226, - "mutability": "mutable", - "name": "dyadDelta", - "nameLocation": "3000:9:27", - "nodeType": "VariableDeclaration", - "scope": 27260, - "src": "2995:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2995:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27231, - "initialValue": { - "arguments": [ - { - "id": 27228, - "name": "ethChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27204, - "src": "3023:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 27229, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27193, - "src": "3034:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - ], - "id": 27227, - "name": "updateNFTs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27479, - "src": "3012:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_enum$_Mode_$27092_$returns$_t_uint256_$", - "typeString": "function (uint256,enum Pool.Mode) returns (uint256)" - } - }, - "id": 27230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3012:27:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2995:44:27" - }, - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "id": 27235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27232, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27193, - "src": "3046:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 27233, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "3054:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3059:7:27", - "memberName": "MINTING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27091, - "src": "3054:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "src": "3046:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "arguments": [ - { - "id": 27246, - "name": "dyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27226, - "src": "3143:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27244, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "3133:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3138:4:27", - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 23913, - "src": "3133:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 27247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3133:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3046:107:27", - "trueExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 27240, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3087:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$27886", - "typeString": "contract Pool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$27886", - "typeString": "contract Pool" - } - ], - "id": 27239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3079:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 27238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3079:7:27", - "typeDescriptions": {} - } - }, - "id": 27241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3079:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 27242, - "name": "dyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27226, - "src": "3094:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27236, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "3069:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3074:4:27", - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 28778, - "src": "3069:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 27243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3069:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27249, - "nodeType": "ExpressionStatement", - "src": "3046:107:27" - }, - { - "expression": { - "id": 27252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27250, - "name": "lastEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27080, - "src": "3160:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 27251, - "name": "newEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27184, - "src": "3175:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3160:26:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27253, - "nodeType": "ExpressionStatement", - "src": "3160:26:27" - }, - { - "eventCall": { - "arguments": [ - { - "id": 27255, - "name": "newEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27184, - "src": "3204:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 27254, - "name": "Synced", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27096, - "src": "3197:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 27256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3197:19:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27257, - "nodeType": "EmitStatement", - "src": "3192:24:27" - }, - { - "expression": { - "id": 27258, - "name": "dyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27226, - "src": "3229:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 27182, - "id": 27259, - "nodeType": "Return", - "src": "3222:16:27" - } - ] - }, - "functionSelector": "fff6cae9", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sync", - "nameLocation": "2443:4:27", - "parameters": { - "id": 27179, - "nodeType": "ParameterList", - "parameters": [], - "src": "2447:2:27" - }, - "returnParameters": { - "id": 27182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27181, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 27261, - "src": "2466:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27180, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2466:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2465:6:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 27479, - "nodeType": "FunctionDefinition", - "src": "3416:2160:27", - "nodes": [], - "body": { - "id": 27478, - "nodeType": "Block", - "src": "3486:2090:27", - "nodes": [], - "statements": [ - { - "assignments": [ - 27273 - ], - "declarations": [ - { - "constant": false, - "id": 27273, - "mutability": "mutable", - "name": "isBoosted", - "nameLocation": "3652:9:27", - "nodeType": "VariableDeclaration", - "scope": 27478, - "src": "3647:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 27272, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3647:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 27275, - "initialValue": { - "hexValue": "66616c7365", - "id": 27274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3664:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3647:22:27" - }, - { - "assignments": [ - 27277 - ], - "declarations": [ - { - "constant": false, - "id": 27277, - "mutability": "mutable", - "name": "dyadDelta", - "nameLocation": "3728:9:27", - "nodeType": "VariableDeclaration", - "scope": 27478, - "src": "3723:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3723:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27285, - "initialValue": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27280, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "3765:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3770:11:27", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 23311, - "src": "3765:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3765:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 27283, - "name": "ethChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27264, - "src": "3785:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27278, - "name": "PoolLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27986, - "src": "3740:11:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PoolLibrary_$27986_$", - "typeString": "type(library PoolLibrary)" - } - }, - "id": 27279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3752:12:27", - "memberName": "percentageOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 27904, - "src": "3740:24:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 27284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3740:55:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3723:72:27" - }, - { - "assignments": [ - 27288 - ], - "declarations": [ - { - "constant": false, - "id": 27288, - "mutability": "mutable", - "name": "multis", - "nameLocation": "3816:6:27", - "nodeType": "VariableDeclaration", - "scope": 27478, - "src": "3802:20:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis" - }, - "typeName": { - "id": 27287, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27286, - "name": "Multis", - "nameLocations": [ - "3802:6:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27129, - "src": "3802:6:27" - }, - "referencedDeclaration": 27129, - "src": "3802:6:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_storage_ptr", - "typeString": "struct Pool.Multis" - } - }, - "visibility": "internal" - } - ], - "id": 27292, - "initialValue": { - "arguments": [ - { - "id": 27290, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27267, - "src": "3836:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - ], - "id": 27289, - "name": "calcMultis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27702, - "src": "3825:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_Mode_$27092_$returns$_t_struct$_Multis_$27129_memory_ptr_$", - "typeString": "function (enum Pool.Mode) returns (struct Pool.Multis memory)" - } - }, - "id": 27291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3825:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3802:39:27" - }, - { - "assignments": [ - 27294 - ], - "declarations": [ - { - "constant": false, - "id": 27294, - "mutability": "mutable", - "name": "minXp", - "nameLocation": "3995:5:27", - "nodeType": "VariableDeclaration", - "scope": 27478, - "src": "3990:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27293, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3990:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27300, - "initialValue": { - "expression": { - "arguments": [ - { - "id": 27297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4008:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27296, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4008:7:27", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 27295, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "4003:4:27", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 27298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4003:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 27299, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4017:3:27", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "4003:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3990:30:27" - }, - { - "assignments": [ - 27302 - ], - "declarations": [ - { - "constant": false, - "id": 27302, - "mutability": "mutable", - "name": "maxXp", - "nameLocation": "4031:5:27", - "nodeType": "VariableDeclaration", - "scope": 27478, - "src": "4026:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27301, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4026:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27306, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27303, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "4039:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4044:6:27", - "memberName": "MAX_XP", - "nodeType": "MemberAccess", - "referencedDeclaration": 28849, - "src": "4039:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4039:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4026:26:27" - }, - { - "body": { - "id": 27467, - "nodeType": "Block", - "src": "4105:1373:27", - "statements": [ - { - "assignments": [ - 27320 - ], - "declarations": [ - { - "constant": false, - "id": 27320, - "mutability": "mutable", - "name": "tokenId", - "nameLocation": "4118:7:27", - "nodeType": "VariableDeclaration", - "scope": 27467, - "src": "4113:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27319, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4113:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27325, - "initialValue": { - "arguments": [ - { - "id": 27323, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27308, - "src": "4146:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27321, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "4128:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4133:12:27", - "memberName": "tokenByIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 29031, - "src": "4128:17:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) external returns (uint256)" - } - }, - "id": 27324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4128:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4113:35:27" - }, - { - "assignments": [ - 27327 - ], - "declarations": [ - { - "constant": false, - "id": 27327, - "mutability": "mutable", - "name": "relativeMulti", - "nameLocation": "4204:13:27", - "nodeType": "VariableDeclaration", - "scope": 27467, - "src": "4199:18:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4199:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27337, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "expression": { - "id": 27328, - "name": "multis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27288, - "src": "4220:6:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis memory" - } - }, - "id": 27329, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4227:13:27", - "memberName": "multiProducts", - "nodeType": "MemberAccess", - "referencedDeclaration": 27123, - "src": "4220:20:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 27331, - "indexExpression": { - "id": 27330, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27308, - "src": "4241:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4220:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3130303030", - "id": 27332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4244:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "4220:29:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "expression": { - "id": 27334, - "name": "multis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27288, - "src": "4252:6:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis memory" - } - }, - "id": 27335, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4259:16:27", - "memberName": "multiProductsSum", - "nodeType": "MemberAccess", - "referencedDeclaration": 27125, - "src": "4252:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4220:55:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4199:76:27" - }, - { - "assignments": [ - 27339 - ], - "declarations": [ - { - "constant": false, - "id": 27339, - "mutability": "mutable", - "name": "relativeDyadDelta", - "nameLocation": "4330:17:27", - "nodeType": "VariableDeclaration", - "scope": 27467, - "src": "4325:22:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4325:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27345, - "initialValue": { - "arguments": [ - { - "id": 27342, - "name": "dyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27277, - "src": "4375:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 27343, - "name": "relativeMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27327, - "src": "4386:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27340, - "name": "PoolLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27986, - "src": "4350:11:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PoolLibrary_$27986_$", - "typeString": "type(library PoolLibrary)" - } - }, - "id": 27341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4362:12:27", - "memberName": "percentageOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 27904, - "src": "4350:24:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 27344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4350:50:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4325:75:27" - }, - { - "assignments": [ - 27350 - ], - "declarations": [ - { - "constant": false, - "id": 27350, - "mutability": "mutable", - "name": "nft", - "nameLocation": "4426:3:27", - "nodeType": "VariableDeclaration", - "scope": 27467, - "src": "4409:20:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 27349, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27348, - "name": "IdNFT.Nft", - "nameLocations": [ - "4409:5:27", - "4415:3:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28834, - "src": "4409:9:27" - }, - "referencedDeclaration": 28834, - "src": "4409:9:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_storage_ptr", - "typeString": "struct IdNFT.Nft" - } - }, - "visibility": "internal" - } - ], - "id": 27355, - "initialValue": { - "arguments": [ - { - "id": 27353, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27320, - "src": "4445:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27351, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "4432:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4437:7:27", - "memberName": "idToNft", - "nodeType": "MemberAccess", - "referencedDeclaration": 28999, - "src": "4432:12:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Nft_$28834_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IdNFT.Nft memory)" - } - }, - "id": 27354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4432:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4409:44:27" - }, - { - "assignments": [ - 27357 - ], - "declarations": [ - { - "constant": false, - "id": 27357, - "mutability": "mutable", - "name": "xpAccrual", - "nameLocation": "4522:9:27", - "nodeType": "VariableDeclaration", - "scope": 27467, - "src": "4517:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27356, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4517:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27358, - "nodeType": "VariableDeclarationStatement", - "src": "4517:14:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 27367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "id": 27362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27359, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27267, - "src": "4602:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 27360, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "4610:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4615:7:27", - "memberName": "BURNING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27090, - "src": "4610:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "src": "4602:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 27366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27363, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "4626:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27364, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4630:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "4626:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 27365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4640:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4626:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4602:39:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27406, - "nodeType": "IfStatement", - "src": "4598:374:27", - "trueBody": { - "id": 27405, - "nodeType": "Block", - "src": "4643:329:27", - "statements": [ - { - "expression": { - "id": 27378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27368, - "name": "xpAccrual", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27357, - "src": "4679:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27369, - "name": "relativeDyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27339, - "src": "4691:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "313030", - "id": 27370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4709:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "4691:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "components": [ - { - "baseExpression": { - "expression": { - "id": 27372, - "name": "multis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27288, - "src": "4716:6:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis memory" - } - }, - "id": 27373, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4723:8:27", - "memberName": "xpMultis", - "nodeType": "MemberAccess", - "referencedDeclaration": 27128, - "src": "4716:15:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 27375, - "indexExpression": { - "id": 27374, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27308, - "src": "4732:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4716:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 27376, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4715:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4691:44:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4679:56:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27379, - "nodeType": "ExpressionStatement", - "src": "4679:56:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 27389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4804:10:27", - "subExpression": { - "id": 27380, - "name": "isBoosted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27273, - "src": "4805:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 27388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27382, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4818:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4822:6:27", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4818:10:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "id": 27386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27320, - "src": "4845:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27384, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "4832:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4837:7:27", - "memberName": "ownerOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 28881, - "src": "4832:12:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 27387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4832:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4818:35:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4804:49:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27404, - "nodeType": "IfStatement", - "src": "4800:164:27", - "trueBody": { - "id": 27403, - "nodeType": "Block", - "src": "4855:109:27", - "statements": [ - { - "expression": { - "id": 27392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27390, - "name": "isBoosted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27273, - "src": "4867:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 27391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4879:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4867:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27393, - "nodeType": "ExpressionStatement", - "src": "4867:16:27" - }, - { - "expression": { - "id": 27401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27394, - "name": "xpAccrual", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27357, - "src": "4895:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 27397, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "4933:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4937:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "4933:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "3130", - "id": 27399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4941:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - ], - "expression": { - "id": 27395, - "name": "PoolLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27986, - "src": "4908:11:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PoolLibrary_$27986_$", - "typeString": "type(library PoolLibrary)" - } - }, - "id": 27396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4920:12:27", - "memberName": "percentageOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 27904, - "src": "4908:24:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 27400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4908:36:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4895:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27402, - "nodeType": "ExpressionStatement", - "src": "4895:49:27" - } - ] - } - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "id": 27410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27407, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27267, - "src": "5016:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 27408, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "5024:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5029:7:27", - "memberName": "BURNING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27090, - "src": "5024:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "src": "5016:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 27436, - "nodeType": "Block", - "src": "5134:112:27", - "statements": [ - { - "expression": { - "id": 27434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 27427, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5200:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27429, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5204:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "5200:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "id": 27432, - "name": "relativeDyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27339, - "src": "5219:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 27431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5215:3:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 27430, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "5215:3:27", - "typeDescriptions": {} - } - }, - "id": 27433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5215:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "5200:37:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 27435, - "nodeType": "ExpressionStatement", - "src": "5200:37:27" - } - ] - }, - "id": 27437, - "nodeType": "IfStatement", - "src": "5012:234:27", - "trueBody": { - "id": 27426, - "nodeType": "Block", - "src": "5038:90:27", - "statements": [ - { - "expression": { - "id": 27418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 27411, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5048:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27413, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5052:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "5048:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "arguments": [ - { - "id": 27416, - "name": "relativeDyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27339, - "src": "5067:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 27415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5063:3:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 27414, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "5063:3:27", - "typeDescriptions": {} - } - }, - "id": 27417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5063:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "5048:37:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 27419, - "nodeType": "ExpressionStatement", - "src": "5048:37:27" - }, - { - "expression": { - "id": 27424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 27420, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5095:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27422, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5099:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "5095:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 27423, - "name": "xpAccrual", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27357, - "src": "5110:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5095:24:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27425, - "nodeType": "ExpressionStatement", - "src": "5095:24:27" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 27441, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27320, - "src": "5300:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 27442, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5309:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - ], - "expression": { - "id": 27438, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "5285:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5290:9:27", - "memberName": "updateNft", - "nodeType": "MemberAccess", - "referencedDeclaration": 28889, - "src": "5285:14:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_struct$_Nft_$28834_memory_ptr_$returns$__$", - "typeString": "function (uint256,struct IdNFT.Nft memory) external" - } - }, - "id": 27443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5285:28:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27444, - "nodeType": "ExpressionStatement", - "src": "5285:28:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27445, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5391:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27446, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5395:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "5391:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 27447, - "name": "minXp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27294, - "src": "5400:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5391:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27455, - "nodeType": "IfStatement", - "src": "5387:39:27", - "trueBody": { - "id": 27454, - "nodeType": "Block", - "src": "5407:19:27", - "statements": [ - { - "expression": { - "id": 27452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27449, - "name": "minXp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27294, - "src": "5409:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 27450, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5417:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5421:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "5417:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5409:14:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27453, - "nodeType": "ExpressionStatement", - "src": "5409:14:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27456, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5437:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27457, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5441:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "5437:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 27458, - "name": "maxXp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27302, - "src": "5446:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5437:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27466, - "nodeType": "IfStatement", - "src": "5433:39:27", - "trueBody": { - "id": 27465, - "nodeType": "Block", - "src": "5453:19:27", - "statements": [ - { - "expression": { - "id": 27463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27460, - "name": "maxXp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27302, - "src": "5455:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 27461, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27350, - "src": "5463:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27462, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5467:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "5463:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5455:14:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27464, - "nodeType": "ExpressionStatement", - "src": "5455:14:27" - } - ] - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27311, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27308, - "src": "4076:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27312, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "4080:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4085:11:27", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 28991, - "src": "4080:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4080:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:22:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27468, - "initializationExpression": { - "assignments": [ - 27308 - ], - "declarations": [ - { - "constant": false, - "id": 27308, - "mutability": "mutable", - "name": "i", - "nameLocation": "4069:1:27", - "nodeType": "VariableDeclaration", - "scope": 27468, - "src": "4064:6:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27307, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4064:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27310, - "initialValue": { - "hexValue": "30", - "id": 27309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4073:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4064:10:27" - }, - "loopExpression": { - "expression": { - "id": 27317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4100:3:27", - "subExpression": { - "id": 27316, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27308, - "src": "4100:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27318, - "nodeType": "ExpressionStatement", - "src": "4100:3:27" - }, - "nodeType": "ForStatement", - "src": "4059:1419:27" - }, - { - "expression": { - "arguments": [ - { - "id": 27472, - "name": "minXp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27294, - "src": "5536:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 27473, - "name": "maxXp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27302, - "src": "5543:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27469, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "5522:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5527:8:27", - "memberName": "updateXP", - "nodeType": "MemberAccess", - "referencedDeclaration": 29024, - "src": "5522:13:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) external" - } - }, - "id": 27474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5522:27:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27475, - "nodeType": "ExpressionStatement", - "src": "5522:27:27" - }, - { - "expression": { - "id": 27476, - "name": "dyadDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27277, - "src": "5562:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 27271, - "id": 27477, - "nodeType": "Return", - "src": "5555:16:27" - } - ] - }, - "documentation": { - "id": 27262, - "nodeType": "StructuredDocumentation", - "src": "3247:166:27", - "text": "@param ethChange Eth price change in basis points\n @param mode Is the change negative or positive\n @return dyadDelta The amount of dyad to mint or burn" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateNFTs", - "nameLocation": "3425:10:27", - "parameters": { - "id": 27268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27264, - "mutability": "mutable", - "name": "ethChange", - "nameLocation": "3441:9:27", - "nodeType": "VariableDeclaration", - "scope": 27479, - "src": "3436:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27263, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3436:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27267, - "mutability": "mutable", - "name": "mode", - "nameLocation": "3457:4:27", - "nodeType": "VariableDeclaration", - "scope": 27479, - "src": "3452:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "typeName": { - "id": 27266, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27265, - "name": "Mode", - "nameLocations": [ - "3452:4:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27092, - "src": "3452:4:27" - }, - "referencedDeclaration": 27092, - "src": "3452:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "visibility": "internal" - } - ], - "src": "3435:27:27" - }, - "returnParameters": { - "id": 27271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27270, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 27479, - "src": "3480:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27269, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3480:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3479:6:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "id": 27702, - "nodeType": "FunctionDefinition", - "src": "5646:1523:27", - "nodes": [], - "body": { - "id": 27701, - "nodeType": "Block", - "src": "5709:1460:27", - "nodes": [], - "statements": [ - { - "assignments": [ - 27489 - ], - "declarations": [ - { - "constant": false, - "id": 27489, - "mutability": "mutable", - "name": "nftTotalSupply", - "nameLocation": "5720:14:27", - "nodeType": "VariableDeclaration", - "scope": 27701, - "src": "5715:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5715:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27493, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27490, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "5737:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5742:11:27", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 28991, - "src": "5737:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5737:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5715:40:27" - }, - { - "assignments": [ - 27495 - ], - "declarations": [ - { - "constant": false, - "id": 27495, - "mutability": "mutable", - "name": "multiProductsSum", - "nameLocation": "5766:16:27", - "nodeType": "VariableDeclaration", - "scope": 27701, - "src": "5761:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27494, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5761:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27496, - "nodeType": "VariableDeclarationStatement", - "src": "5761:21:27" - }, - { - "assignments": [ - 27501 - ], - "declarations": [ - { - "constant": false, - "id": 27501, - "mutability": "mutable", - "name": "multiProducts", - "nameLocation": "5802:13:27", - "nodeType": "VariableDeclaration", - "scope": 27701, - "src": "5788:27:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 27499, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5788:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27500, - "nodeType": "ArrayTypeName", - "src": "5788:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 27507, - "initialValue": { - "arguments": [ - { - "id": 27505, - "name": "nftTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27489, - "src": "5829:14:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 27504, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5818:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 27502, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5822:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27503, - "nodeType": "ArrayTypeName", - "src": "5822:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 27506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5818:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5788:56:27" - }, - { - "assignments": [ - 27512 - ], - "declarations": [ - { - "constant": false, - "id": 27512, - "mutability": "mutable", - "name": "xpMultis", - "nameLocation": "5864:8:27", - "nodeType": "VariableDeclaration", - "scope": 27701, - "src": "5850:22:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 27510, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5850:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27511, - "nodeType": "ArrayTypeName", - "src": "5850:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 27518, - "initialValue": { - "arguments": [ - { - "id": 27516, - "name": "nftTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27489, - "src": "5891:14:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 27515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5880:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 27513, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5884:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27514, - "nodeType": "ArrayTypeName", - "src": "5884:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 27517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5880:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5850:56:27" - }, - { - "body": { - "id": 27684, - "nodeType": "Block", - "src": "5955:1046:27", - "statements": [ - { - "assignments": [ - 27533 - ], - "declarations": [ - { - "constant": false, - "id": 27533, - "mutability": "mutable", - "name": "nft", - "nameLocation": "6009:3:27", - "nodeType": "VariableDeclaration", - "scope": 27684, - "src": "5992:20:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 27532, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27531, - "name": "IdNFT.Nft", - "nameLocations": [ - "5992:5:27", - "5998:3:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28834, - "src": "5992:9:27" - }, - "referencedDeclaration": 28834, - "src": "5992:9:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_storage_ptr", - "typeString": "struct IdNFT.Nft" - } - }, - "visibility": "internal" - } - ], - "id": 27541, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 27538, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27520, - "src": "6046:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27536, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "6028:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6033:12:27", - "memberName": "tokenByIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 29031, - "src": "6028:17:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) external returns (uint256)" - } - }, - "id": 27539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6028:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27534, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "6015:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6020:7:27", - "memberName": "idToNft", - "nodeType": "MemberAccess", - "referencedDeclaration": 28999, - "src": "6015:12:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Nft_$28834_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IdNFT.Nft memory)" - } - }, - "id": 27540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6015:34:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5992:57:27" - }, - { - "assignments": [ - 27543 - ], - "declarations": [ - { - "constant": false, - "id": 27543, - "mutability": "mutable", - "name": "multiProduct", - "nameLocation": "6063:12:27", - "nodeType": "VariableDeclaration", - "scope": 27684, - "src": "6058:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27542, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6058:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27544, - "nodeType": "VariableDeclarationStatement", - "src": "6058:17:27" - }, - { - "assignments": [ - 27546 - ], - "declarations": [ - { - "constant": false, - "id": 27546, - "mutability": "mutable", - "name": "xpMulti", - "nameLocation": "6104:7:27", - "nodeType": "VariableDeclaration", - "scope": 27684, - "src": "6099:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6099:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27547, - "nodeType": "VariableDeclarationStatement", - "src": "6099:12:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 27551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27548, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6145:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27549, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6149:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "6145:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 27550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6159:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6145:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27667, - "nodeType": "IfStatement", - "src": "6141:736:27", - "trueBody": { - "id": 27666, - "nodeType": "Block", - "src": "6162:715:27", - "statements": [ - { - "assignments": [ - 27553 - ], - "declarations": [ - { - "constant": false, - "id": 27553, - "mutability": "mutable", - "name": "xpDelta", - "nameLocation": "6261:7:27", - "nodeType": "VariableDeclaration", - "scope": 27666, - "src": "6256:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27552, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6256:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27561, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27554, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "6272:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6277:6:27", - "memberName": "MAX_XP", - "nodeType": "MemberAccess", - "referencedDeclaration": 28849, - "src": "6272:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6272:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27557, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "6288:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6293:6:27", - "memberName": "MIN_XP", - "nodeType": "MemberAccess", - "referencedDeclaration": 28844, - "src": "6288:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6288:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6272:29:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6256:45:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27562, - "name": "xpDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27553, - "src": "6315:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 27563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6326:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6315:12:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27570, - "nodeType": "IfStatement", - "src": "6311:34:27", - "trueBody": { - "id": 27569, - "nodeType": "Block", - "src": "6329:16:27", - "statements": [ - { - "expression": { - "id": 27567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27565, - "name": "xpDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27553, - "src": "6331:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "31", - "id": 27566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6341:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6331:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27568, - "nodeType": "ExpressionStatement", - "src": "6331:11:27" - } - ] - } - }, - { - "assignments": [ - 27572 - ], - "declarations": [ - { - "constant": false, - "id": 27572, - "mutability": "mutable", - "name": "xpScaled", - "nameLocation": "6382:8:27", - "nodeType": "VariableDeclaration", - "scope": 27666, - "src": "6377:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27571, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6377:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27584, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27573, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6394:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6398:2:27", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28833, - "src": "6394:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27575, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "6401:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6406:6:27", - "memberName": "MIN_XP", - "nodeType": "MemberAccess", - "referencedDeclaration": 28844, - "src": "6401:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6401:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6394:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 27579, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6393:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3130303030", - "id": 27580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6416:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "6393:28:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 27582, - "name": "xpDelta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27553, - "src": "6424:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6393:38:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6377:54:27" - }, - { - "assignments": [ - 27586 - ], - "declarations": [ - { - "constant": false, - "id": 27586, - "mutability": "mutable", - "name": "mintAvgMinted", - "nameLocation": "6446:13:27", - "nodeType": "VariableDeclaration", - "scope": 27666, - "src": "6441:18:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27585, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6441:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27607, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27587, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6463:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27588, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6467:9:27", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28829, - "src": "6463:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "expression": { - "id": 27591, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6482:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27592, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6486:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "6482:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6477:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27589, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6477:4:27", - "typeDescriptions": {} - } - }, - "id": 27593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6477:17:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6463:31:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 27595, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6462:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3130303030", - "id": 27596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6496:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "6462:39:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 27598, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "6505:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6510:11:27", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 23311, - "src": "6505:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 27600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6505:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 27601, - "name": "nftTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27489, - "src": "6524:14:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6505:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 27603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6539:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6505:35:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 27605, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6504:37:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6462:79:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6441:100:27" - }, - { - "expression": { - "id": 27615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27608, - "name": "xpMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27546, - "src": "6551:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27611, - "name": "xpScaled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27572, - "src": "6584:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "313030", - "id": 27612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6593:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "6584:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27609, - "name": "PoolLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27986, - "src": "6561:11:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PoolLibrary_$27986_$", - "typeString": "type(library PoolLibrary)" - } - }, - "id": 27610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6573:10:27", - "memberName": "getXpMulti", - "nodeType": "MemberAccess", - "referencedDeclaration": 27985, - "src": "6561:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 27614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6561:36:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6551:46:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27616, - "nodeType": "ExpressionStatement", - "src": "6551:46:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "id": 27620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27617, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27482, - "src": "6611:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 27618, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "6619:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6624:7:27", - "memberName": "BURNING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27090, - "src": "6619:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "src": "6611:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27628, - "nodeType": "IfStatement", - "src": "6607:52:27", - "trueBody": { - "id": 27627, - "nodeType": "Block", - "src": "6633:26:27", - "statements": [ - { - "expression": { - "id": 27625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27621, - "name": "xpMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27546, - "src": "6635:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "333030", - "id": 27622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6645:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_300_by_1", - "typeString": "int_const 300" - }, - "value": "300" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 27623, - "name": "xpMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27546, - "src": "6649:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6645:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6635:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27626, - "nodeType": "ExpressionStatement", - "src": "6635:21:27" - } - ] - } - }, - { - "assignments": [ - 27630 - ], - "declarations": [ - { - "constant": false, - "id": 27630, - "mutability": "mutable", - "name": "depositMulti", - "nameLocation": "6698:12:27", - "nodeType": "VariableDeclaration", - "scope": 27666, - "src": "6693:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27629, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6693:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27650, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "id": 27633, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6718:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6722:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "6718:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6713:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27631, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6713:4:27", - "typeDescriptions": {} - } - }, - "id": 27635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6713:17:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3130303030", - "id": 27636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6731:5:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "6713:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "id": 27640, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6745:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27641, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6749:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "6745:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6740:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27638, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6740:4:27", - "typeDescriptions": {} - } - }, - "id": 27642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6740:17:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 27643, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27533, - "src": "6758:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6762:9:27", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28829, - "src": "6758:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6740:31:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 27646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6772:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6740:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 27648, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6739:35:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6713:61:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6693:81:27" - }, - { - "expression": { - "id": 27664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27651, - "name": "multiProduct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27543, - "src": "6784:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27652, - "name": "xpMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27546, - "src": "6799:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "components": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "id": 27656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27653, - "name": "mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27482, - "src": "6810:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 27654, - "name": "Mode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27092, - "src": "6818:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Mode_$27092_$", - "typeString": "type(enum Pool.Mode)" - } - }, - "id": 27655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6823:7:27", - "memberName": "BURNING", - "nodeType": "MemberAccess", - "referencedDeclaration": 27090, - "src": "6818:12:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "src": "6810:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 27658, - "name": "depositMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27630, - "src": "6849:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6810:51:27", - "trueExpression": { - "id": 27657, - "name": "mintAvgMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27586, - "src": "6833:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 27660, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6809:53:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6799:63:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "313030", - "id": 27662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6865:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "6799:69:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6784:84:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27665, - "nodeType": "ExpressionStatement", - "src": "6784:84:27" - } - ] - } - }, - { - "expression": { - "id": 27672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 27668, - "name": "multiProducts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27501, - "src": "6886:13:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 27670, - "indexExpression": { - "id": 27669, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27520, - "src": "6900:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6886:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 27671, - "name": "multiProduct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27543, - "src": "6906:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6886:32:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27673, - "nodeType": "ExpressionStatement", - "src": "6886:32:27" - }, - { - "expression": { - "id": 27676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27674, - "name": "multiProductsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27495, - "src": "6926:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 27675, - "name": "multiProduct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27543, - "src": "6947:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6926:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27677, - "nodeType": "ExpressionStatement", - "src": "6926:33:27" - }, - { - "expression": { - "id": 27682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 27678, - "name": "xpMultis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "6967:8:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 27680, - "indexExpression": { - "id": 27679, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27520, - "src": "6976:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6967:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 27681, - "name": "xpMulti", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27546, - "src": "6987:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6967:27:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27683, - "nodeType": "ExpressionStatement", - "src": "6967:27:27" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27523, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27520, - "src": "5930:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 27524, - "name": "nftTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27489, - "src": "5934:14:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5930:18:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27685, - "initializationExpression": { - "assignments": [ - 27520 - ], - "declarations": [ - { - "constant": false, - "id": 27520, - "mutability": "mutable", - "name": "i", - "nameLocation": "5923:1:27", - "nodeType": "VariableDeclaration", - "scope": 27685, - "src": "5918:6:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27519, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5918:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27522, - "initialValue": { - "hexValue": "30", - "id": 27521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5927:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5918:10:27" - }, - "loopExpression": { - "expression": { - "id": 27527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5950:3:27", - "subExpression": { - "id": 27526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27520, - "src": "5950:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27528, - "nodeType": "ExpressionStatement", - "src": "5950:3:27" - }, - "nodeType": "ForStatement", - "src": "5913:1088:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27686, - "name": "multiProductsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27495, - "src": "7054:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 27687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7074:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7054:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27694, - "nodeType": "IfStatement", - "src": "7050:52:27", - "trueBody": { - "id": 27693, - "nodeType": "Block", - "src": "7077:25:27", - "statements": [ - { - "expression": { - "id": 27691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 27689, - "name": "multiProductsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27495, - "src": "7079:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "31", - "id": 27690, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7098:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7079:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 27692, - "nodeType": "ExpressionStatement", - "src": "7079:20:27" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 27696, - "name": "multiProducts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27501, - "src": "7122:13:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "id": 27697, - "name": "multiProductsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27495, - "src": "7137:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 27698, - "name": "xpMultis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "7155:8:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 27695, - "name": "Multis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27129, - "src": "7115:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Multis_$27129_storage_ptr_$", - "typeString": "type(struct Pool.Multis storage pointer)" - } - }, - "id": 27699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7115:49:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis memory" - } - }, - "functionReturnParameters": 27487, - "id": 27700, - "nodeType": "Return", - "src": "7108:56:27" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "calcMultis", - "nameLocation": "5655:10:27", - "parameters": { - "id": 27483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27482, - "mutability": "mutable", - "name": "mode", - "nameLocation": "5671:4:27", - "nodeType": "VariableDeclaration", - "scope": 27702, - "src": "5666:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - }, - "typeName": { - "id": 27481, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27480, - "name": "Mode", - "nameLocations": [ - "5666:4:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27092, - "src": "5666:4:27" - }, - "referencedDeclaration": 27092, - "src": "5666:4:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Mode_$27092", - "typeString": "enum Pool.Mode" - } - }, - "visibility": "internal" - } - ], - "src": "5665:11:27" - }, - "returnParameters": { - "id": 27487, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27486, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 27702, - "src": "5694:13:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_memory_ptr", - "typeString": "struct Pool.Multis" - }, - "typeName": { - "id": 27485, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27484, - "name": "Multis", - "nameLocations": [ - "5694:6:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27129, - "src": "5694:6:27" - }, - "referencedDeclaration": 27129, - "src": "5694:6:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Multis_$27129_storage_ptr", - "typeString": "struct Pool.Multis" - } - }, - "visibility": "internal" - } - ], - "src": "5693:15:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "id": 27750, - "nodeType": "FunctionDefinition", - "src": "7199:347:27", - "nodes": [], - "body": { - "id": 27749, - "nodeType": "Block", - "src": "7281:265:27", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27712, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7295:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7299:5:27", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "7295:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 27714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7307:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7295:13:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "506f6f6c3a20596f75206e65656420746f2073656e6420736f6d6520455448", - "id": 27716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7310:33:27", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fee1a2f2fb83d1f1ee6f9c74f92fc48fd42a6b1f24d1fd12742c0f45c4ffa709", - "typeString": "literal_string \"Pool: You need to send some ETH\"" - }, - "value": "Pool: You need to send some ETH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fee1a2f2fb83d1f1ee6f9c74f92fc48fd42a6b1f24d1fd12742c0f45c4ffa709", - "typeString": "literal_string \"Pool: You need to send some ETH\"" - } - ], - "id": 27711, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7287:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 27717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7287:57:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27718, - "nodeType": "ExpressionStatement", - "src": "7287:57:27" - }, - { - "assignments": [ - 27720 - ], - "declarations": [ - { - "constant": false, - "id": 27720, - "mutability": "mutable", - "name": "newDyad", - "nameLocation": "7355:7:27", - "nodeType": "VariableDeclaration", - "scope": 27749, - "src": "7350:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27719, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7350:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27731, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 27723, - "name": "getNewEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27178, - "src": "7370:14:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", - "typeString": "function () view returns (int256)" - } - }, - "id": 27724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7370:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7365:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27721, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7365:4:27", - "typeDescriptions": {} - } - }, - "id": 27725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7365:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "expression": { - "id": 27726, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7390:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7394:5:27", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "7390:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7365:34:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "313030303030303030", - "id": 27729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7400:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "100000000" - }, - "src": "7365:44:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7350:59:27" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27733, - "name": "newDyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27720, - "src": "7423:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 27734, - "name": "minAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27704, - "src": "7434:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7423:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "506f6f6c3a206d696e74447961643a206d696e416d6f756e74206e6f742072656163686564", - "id": 27736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7445:39:27", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_db135d6c02f06f27da9724516469a5815825cae37cd7b1dbb757231133054a7b", - "typeString": "literal_string \"Pool: mintDyad: minAmount not reached\"" - }, - "value": "Pool: mintDyad: minAmount not reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_db135d6c02f06f27da9724516469a5815825cae37cd7b1dbb757231133054a7b", - "typeString": "literal_string \"Pool: mintDyad: minAmount not reached\"" - } - ], - "id": 27732, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7415:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 27737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7415:70:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27738, - "nodeType": "ExpressionStatement", - "src": "7415:70:27" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 27742, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7501:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7505:6:27", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "7501:10:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 27744, - "name": "newDyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27720, - "src": "7513:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27739, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "7491:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7496:4:27", - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 28778, - "src": "7491:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 27745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7491:30:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27746, - "nodeType": "ExpressionStatement", - "src": "7491:30:27" - }, - { - "expression": { - "id": 27747, - "name": "newDyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27720, - "src": "7534:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 27710, - "id": 27748, - "nodeType": "Return", - "src": "7527:14:27" - } - ] - }, - "functionSelector": "fb9103cc", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 27707, - "kind": "modifierInvocation", - "modifierName": { - "id": 27706, - "name": "onlyNftContract", - "nameLocations": [ - "7250:15:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27120, - "src": "7250:15:27" - }, - "nodeType": "ModifierInvocation", - "src": "7250:15:27" - } - ], - "name": "mintDyad", - "nameLocation": "7208:8:27", - "parameters": { - "id": 27705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27704, - "mutability": "mutable", - "name": "minAmount", - "nameLocation": "7222:9:27", - "nodeType": "VariableDeclaration", - "scope": 27750, - "src": "7217:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27703, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7217:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7216:16:27" - }, - "returnParameters": { - "id": 27710, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27709, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 27750, - "src": "7275:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27708, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7275:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7274:6:27" - }, - "scope": 27886, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 27770, - "nodeType": "FunctionDefinition", - "src": "7550:118:27", - "nodes": [], - "body": { - "id": 27769, - "nodeType": "Block", - "src": "7605:63:27", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 27760, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7629:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7633:6:27", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "7629:10:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 27764, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7649:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$27886", - "typeString": "contract Pool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$27886", - "typeString": "contract Pool" - } - ], - "id": 27763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7641:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 27762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7641:7:27", - "typeDescriptions": {} - } - }, - "id": 27765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7641:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 27766, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27752, - "src": "7656:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27757, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "7611:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7616:12:27", - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 23426, - "src": "7611:17:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 27767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7611:52:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27768, - "nodeType": "ExpressionStatement", - "src": "7611:52:27" - } - ] - }, - "functionSelector": "b6b55f25", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 27755, - "kind": "modifierInvocation", - "modifierName": { - "id": 27754, - "name": "onlyNftContract", - "nameLocations": [ - "7589:15:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27120, - "src": "7589:15:27" - }, - "nodeType": "ModifierInvocation", - "src": "7589:15:27" - } - ], - "name": "deposit", - "nameLocation": "7559:7:27", - "parameters": { - "id": 27753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27752, - "mutability": "mutable", - "name": "amount", - "nameLocation": "7572:6:27", - "nodeType": "VariableDeclaration", - "scope": 27770, - "src": "7567:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7567:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7566:13:27" - }, - "returnParameters": { - "id": 27756, - "nodeType": "ParameterList", - "parameters": [], - "src": "7605:0:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 27787, - "nodeType": "FunctionDefinition", - "src": "7672:116:27", - "nodes": [], - "body": { - "id": 27786, - "nodeType": "Block", - "src": "7746:42:27", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 27782, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27772, - "src": "7766:8:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 27783, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27774, - "src": "7776:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27779, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "7752:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7757:8:27", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 23350, - "src": "7752:13:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 27784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7752:31:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 27785, - "nodeType": "ExpressionStatement", - "src": "7752:31:27" - } - ] - }, - "functionSelector": "f3fef3a3", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 27777, - "kind": "modifierInvocation", - "modifierName": { - "id": 27776, - "name": "onlyNftContract", - "nameLocations": [ - "7730:15:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27120, - "src": "7730:15:27" - }, - "nodeType": "ModifierInvocation", - "src": "7730:15:27" - } - ], - "name": "withdraw", - "nameLocation": "7681:8:27", - "parameters": { - "id": 27775, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27772, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "7698:8:27", - "nodeType": "VariableDeclaration", - "scope": 27787, - "src": "7690:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27771, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7690:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27774, - "mutability": "mutable", - "name": "amount", - "nameLocation": "7713:6:27", - "nodeType": "VariableDeclaration", - "scope": 27787, - "src": "7708:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27773, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7708:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7689:31:27" - }, - "returnParameters": { - "id": 27778, - "nodeType": "ParameterList", - "parameters": [], - "src": "7746:0:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 27819, - "nodeType": "FunctionDefinition", - "src": "7792:250:27", - "nodes": [], - "body": { - "id": 27818, - "nodeType": "Block", - "src": "7864:178:27", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 27799, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27791, - "src": "7880:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27796, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27086, - "src": "7870:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28779", - "typeString": "contract DYAD" - } - }, - "id": 27798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7875:4:27", - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 23913, - "src": "7870:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 27800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7870:17:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27801, - "nodeType": "ExpressionStatement", - "src": "7870:17:27" - }, - { - "assignments": [ - 27803 - ], - "declarations": [ - { - "constant": false, - "id": 27803, - "mutability": "mutable", - "name": "usdInEth", - "nameLocation": "7953:8:27", - "nodeType": "VariableDeclaration", - "scope": 27818, - "src": "7948:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27802, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7948:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27809, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 27804, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27791, - "src": "7964:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "313030303030303030", - "id": 27805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7971:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "100000000" - }, - "src": "7964:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 27807, - "name": "lastEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27080, - "src": "7983:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7964:31:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7948:47:27" - }, - { - "expression": { - "arguments": [ - { - "id": 27815, - "name": "usdInEth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27803, - "src": "8028:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 27812, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27789, - "src": "8009:8:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8001:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 27810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8001:8:27", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 27813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8001:17:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 27814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8019:8:27", - "memberName": "transfer", - "nodeType": "MemberAccess", - "src": "8001:26:27", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 27816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8001:36:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27817, - "nodeType": "ExpressionStatement", - "src": "8001:36:27" - } - ] - }, - "functionSelector": "1e9a6950", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 27794, - "kind": "modifierInvocation", - "modifierName": { - "id": 27793, - "name": "onlyNftContract", - "nameLocations": [ - "7848:15:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27120, - "src": "7848:15:27" - }, - "nodeType": "ModifierInvocation", - "src": "7848:15:27" - } - ], - "name": "redeem", - "nameLocation": "7801:6:27", - "parameters": { - "id": 27792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27789, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "7816:8:27", - "nodeType": "VariableDeclaration", - "scope": 27819, - "src": "7808:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7808:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27791, - "mutability": "mutable", - "name": "amount", - "nameLocation": "7831:6:27", - "nodeType": "VariableDeclaration", - "scope": 27819, - "src": "7826:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27790, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7826:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7807:31:27" - }, - "returnParameters": { - "id": 27795, - "nodeType": "ParameterList", - "parameters": [], - "src": "7864:0:27" - }, - "scope": 27886, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 27885, - "nodeType": "FunctionDefinition", - "src": "8224:657:27", - "nodes": [], - "body": { - "id": 27884, - "nodeType": "Block", - "src": "8298:583:27", - "nodes": [], - "statements": [ - { - "assignments": [ - 27832 - ], - "declarations": [ - { - "constant": false, - "id": 27832, - "mutability": "mutable", - "name": "nft", - "nameLocation": "8321:3:27", - "nodeType": "VariableDeclaration", - "scope": 27884, - "src": "8304:20:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 27831, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 27830, - "name": "IdNFT.Nft", - "nameLocations": [ - "8304:5:27", - "8310:3:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28834, - "src": "8304:9:27" - }, - "referencedDeclaration": 28834, - "src": "8304:9:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_storage_ptr", - "typeString": "struct IdNFT.Nft" - } - }, - "visibility": "internal" - } - ], - "id": 27837, - "initialValue": { - "arguments": [ - { - "id": 27835, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27821, - "src": "8340:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27833, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "8327:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8332:7:27", - "memberName": "idToNft", - "nodeType": "MemberAccess", - "referencedDeclaration": 28999, - "src": "8327:12:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Nft_$28834_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IdNFT.Nft memory)" - } - }, - "id": 27836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8327:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8304:39:27" - }, - { - "eventCall": { - "arguments": [ - { - "id": 27839, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27821, - "src": "8426:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 27842, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27821, - "src": "8443:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27840, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "8430:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8435:7:27", - "memberName": "ownerOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 28881, - "src": "8430:12:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 27843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8430:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 27844, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27823, - "src": "8448:8:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27838, - "name": "NftClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27104, - "src": "8415:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,address,address)" - } - }, - "id": 27845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8415:42:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27846, - "nodeType": "EmitStatement", - "src": "8410:47:27" - }, - { - "expression": { - "arguments": [ - { - "id": 27850, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27821, - "src": "8474:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27847, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "8464:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8469:4:27", - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28944, - "src": "8464:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 27851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8464:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27852, - "nodeType": "ExpressionStatement", - "src": "8464:13:27" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 27857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 27854, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27832, - "src": "8503:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8507:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "8503:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "hexValue": "30", - "id": 27856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8517:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8503:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "644e46543a204e4654206973206e6f74206c6971756964617461626c65", - "id": 27858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8520:31:27", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_17ff6a6d2f4b10d2e628cd4a824ac90b0041f9a391f00757e926442ee78e3a67", - "typeString": "literal_string \"dNFT: NFT is not liquidatable\"" - }, - "value": "dNFT: NFT is not liquidatable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_17ff6a6d2f4b10d2e628cd4a824ac90b0041f9a391f00757e926442ee78e3a67", - "typeString": "literal_string \"dNFT: NFT is not liquidatable\"" - } - ], - "id": 27853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8495:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 27859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8495:57:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 27860, - "nodeType": "ExpressionStatement", - "src": "8495:57:27" - }, - { - "assignments": [ - 27862 - ], - "declarations": [ - { - "constant": false, - "id": 27862, - "mutability": "mutable", - "name": "ethRequired", - "nameLocation": "8697:11:27", - "nodeType": "VariableDeclaration", - "scope": 27884, - "src": "8692:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27861, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8692:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 27873, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 27870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 27867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "8716:12:27", - "subExpression": { - "expression": { - "id": 27865, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27832, - "src": "8717:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 27866, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8721:7:27", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28831, - "src": "8717:11:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 27864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8711:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 27863, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8711:4:27", - "typeDescriptions": {} - } - }, - "id": 27868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8711:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 27869, - "name": "lastEthPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27080, - "src": "8732:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8711:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "313030303030303030", - "id": 27871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8745:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "100000000" - }, - "src": "8711:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8692:62:27" - }, - { - "expression": { - "arguments": [ - { - "id": 27879, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27823, - "src": "8849:8:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 27880, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27832, - "src": "8859:3:27", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - { - "id": 27881, - "name": "ethRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27862, - "src": "8864:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Nft_$28834_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 27874, - "name": "dnft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27083, - "src": "8814:4:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IdNFT_$29032", - "typeString": "contract IdNFT" - } - }, - "id": 27875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8819:11:27", - "memberName": "mintNftCopy", - "nodeType": "MemberAccess", - "referencedDeclaration": 28939, - "src": "8814:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_struct$_Nft_$28834_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,struct IdNFT.Nft memory,uint256) payable external returns (uint256)" - } - }, - "id": 27878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "expression": { - "id": 27876, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8838:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8842:5:27", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "8838:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "8814:34:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_struct$_Nft_$28834_memory_ptr_$_t_uint256_$returns$_t_uint256_$value", - "typeString": "function (address,struct IdNFT.Nft memory,uint256) payable external returns (uint256)" - } - }, - "id": 27882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8814:62:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 27827, - "id": 27883, - "nodeType": "Return", - "src": "8807:69:27" - } - ] - }, - "functionSelector": "ddd5e1b2", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claim", - "nameLocation": "8233:5:27", - "parameters": { - "id": 27824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27821, - "mutability": "mutable", - "name": "id", - "nameLocation": "8244:2:27", - "nodeType": "VariableDeclaration", - "scope": 27885, - "src": "8239:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27820, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8239:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27823, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "8256:8:27", - "nodeType": "VariableDeclaration", - "scope": 27885, - "src": "8248:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27822, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8248:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8238:27:27" - }, - "returnParameters": { - "id": 27827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27826, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 27885, - "src": "8292:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 27825, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8292:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8291:6:27" - }, - "scope": 27886, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Pool", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 27886 - ], - "name": "Pool", - "nameLocation": "284:4:27", - "scope": 27887, - "usedErrors": [] - } - ], - "license": "MIT" - }, - "id": 27 -} \ No newline at end of file diff --git a/abi/dNFT.json b/abi/dNFT.json index cea668f..39ea8e6 100644 --- a/abi/dNFT.json +++ b/abi/dNFT.json @@ -8,686 +8,650 @@ "type": "address" }, { - "internalType": "uint256", - "name": "depositMinimum", - "type": "uint256" + "internalType": "address", + "name": "_oracle", + "type": "address" }, { - "internalType": "bool", - "name": "withInsiderAllocation", - "type": "bool" + "internalType": "address[]", + "name": "_insiders", + "type": "address[]" } ], "stateMutability": "nonpayable", "type": "constructor" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "indexed": true, "internalType": "uint256", - "name": "tokenId", + "name": "syncedBlock", "type": "uint256" } ], - "name": "Approval", - "type": "event" + "name": "AlreadyClaimed", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" + "internalType": "uint256", + "name": "syncedBlock", + "type": "uint256" } ], - "name": "ApprovalForAll", - "type": "event" + "name": "AlreadySniped", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "id", + "name": "blockNumber", "type": "uint256" - }, + } + ], + "name": "CannotDepositAndWithdrawInSameBlock", + "type": "error" + }, + { + "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "cr", "type": "uint256" } ], - "name": "DyadDeposited", - "type": "event" + "name": "CrTooLow", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" } ], - "name": "DyadMinted", - "type": "event" + "name": "DNftDoesNotExist", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" - }, + } + ], + "name": "DepositIsNegative", + "type": "error" + }, + { + "inputs": [], + "name": "DyadTotalSupplyZero", + "type": "error" + }, + { + "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "averageTVL", "type": "uint256" } ], - "name": "DyadRedeemed", - "type": "event" + "name": "ExceedsAverageTVL", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, + "internalType": "int256", + "name": "deposit", + "type": "int256" + } + ], + "name": "ExceedsDepositBalance", + "type": "error" + }, + { + "inputs": [ { - "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "DyadWithdrawn", - "type": "event" + "name": "ExceedsWithdrawalBalance", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { - "indexed": true, "internalType": "uint256", - "name": "id", + "name": "amount", "type": "uint256" } ], - "name": "NftMinted", - "type": "event" + "name": "FailedEthTransfer", + "type": "error" }, { - "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", + "name": "id", "type": "uint256" } ], - "name": "Transfer", - "type": "event" + "name": "IsActive", + "type": "error" }, { - "inputs": [], - "name": "DEPOSIT_MINIMUM", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "IsInactive", + "type": "error" }, { - "inputs": [], - "name": "MAX_COLLATERATION_RATIO", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "id", "type": "uint256" + }, + { + "internalType": "enum DNft.Permission", + "name": "permission", + "type": "uint8" } ], - "stateMutability": "view", - "type": "function" + "name": "MissingPermission", + "type": "error" }, { - "inputs": [], - "name": "MAX_SUPPLY", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "int256", + "name": "amount", + "type": "int256" } ], - "stateMutability": "view", - "type": "function" + "name": "NotEnoughToCoverDepositMinimum", + "type": "error" }, { - "inputs": [], - "name": "MAX_XP", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "int256", + "name": "amount", + "type": "int256" } ], - "stateMutability": "view", - "type": "function" + "name": "NotEnoughToCoverNegativeDeposit", + "type": "error" }, { - "inputs": [], - "name": "MIN_XP", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NotLiquidatable", + "type": "error" }, { "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, { "internalType": "uint256", - "name": "tokenId", + "name": "id", "type": "uint256" } ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NotNFTOwner", + "type": "error" }, { "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address" + "internalType": "int256", + "name": "priceChange", + "type": "int256" } ], - "name": "balanceOf", - "outputs": [ + "name": "PriceChangeTooSmall", + "type": "error" + }, + { + "inputs": [], + "name": "ReachedMaxSupply", + "type": "error" + }, + { + "inputs": [], + "name": "SyncTooSoon", + "type": "error" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "WithdrawalsNotZero", + "type": "error" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "uint256", - "name": "tokenId", + "name": "id", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Activated", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "id", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "amount", + "name": "tokenId", "type": "uint256" } ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Approval", + "type": "event" }, { - "inputs": [], - "name": "dyad", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "contract DYAD", - "name": "", + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" } ], - "stateMutability": "view", - "type": "function" + "name": "ApprovalForAll", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "uint256", - "name": "tokenId", + "name": "id", "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ + }, { - "internalType": "address", - "name": "", - "type": "address" + "indexed": false, + "internalType": "int256", + "name": "share", + "type": "int256" } ], - "stateMutability": "view", - "type": "function" + "name": "Claimed", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "id", "type": "uint256" } ], - "name": "idToNft", - "outputs": [ + "name": "Deactivated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "uint256", - "name": "withdrawn", + "name": "id", "type": "uint256" }, { - "internalType": "int256", - "name": "deposit", - "type": "int256" - }, - { + "indexed": false, "internalType": "uint256", - "name": "xp", + "name": "amount", "type": "uint256" - }, - { - "internalType": "bool", - "name": "isLiquidatable", - "type": "bool" } ], - "stateMutability": "view", - "type": "function" + "name": "Deposited", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address" + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "int256", + "name": "amount", + "type": "int256" } ], - "stateMutability": "view", - "type": "function" + "name": "Exchanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], - "name": "mintDyad", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "name": "Liquidated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "receiver", + "name": "to", "type": "address" - } - ], - "name": "mintNft", - "outputs": [ + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "id", "type": "uint256" } ], - "stateMutability": "payable", - "type": "function" + "name": "Minted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", - "name": "receiver", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" }, { "components": [ { - "internalType": "uint256", - "name": "withdrawn", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "deposit", - "type": "int256" + "internalType": "address", + "name": "operator", + "type": "address" }, { - "internalType": "uint256", - "name": "xp", - "type": "uint256" + "internalType": "enum DNft.Permission[]", + "name": "permissions", + "type": "uint8[]" } ], - "internalType": "struct IdNFT.Nft", - "name": "nft", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "depositMinimum", - "type": "uint256" - } - ], - "name": "mintNftCopy", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" + "indexed": false, + "internalType": "struct DNft.PermissionSet[]", + "name": "permissions", + "type": "tuple[]" } ], - "stateMutability": "view", - "type": "function" + "name": "Modified", + "type": "event" }, { - "inputs": [], - "name": "numberOfMints", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "from", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { + "indexed": true, "internalType": "uint256", - "name": "tokenId", + "name": "to", "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ + }, { - "internalType": "address", - "name": "", - "type": "address" + "indexed": false, + "internalType": "int256", + "name": "amount", + "type": "int256" } ], - "stateMutability": "view", - "type": "function" + "name": "Moved", + "type": "event" }, { - "inputs": [], - "name": "pool", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "contract Pool", - "name": "", + "indexed": true, + "internalType": "address", + "name": "to", "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { + "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { + "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "redeem", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Redeemed", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", + "indexed": true, + "internalType": "uint256", "name": "from", - "type": "address" + "type": "uint256" }, { - "internalType": "address", + "indexed": true, + "internalType": "uint256", "name": "to", - "type": "address" + "type": "uint256" }, { + "indexed": false, + "internalType": "int256", + "name": "share", + "type": "int256" + } + ], + "name": "Sniped", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, "internalType": "uint256", - "name": "tokenId", + "name": "id", "type": "uint256" } ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Synced", + "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" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" } ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Transfer", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "uint256", + "name": "from", + "type": "uint256" + }, + { + "indexed": true, "internalType": "address", - "name": "operator", + "name": "to", "type": "address" }, { - "internalType": "bool", - "name": "approved", - "type": "bool" + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", + "name": "Withdrawn", + "type": "event" + }, + { + "inputs": [], + "name": "DIBS_MINT_SHARE_REWARD", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MAX_SUPPLY", + "outputs": [ { - "internalType": "address", - "name": "newPool", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "setPool", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MIN_COLLATERIZATION_RATIO", + "outputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "supportsInterface", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_MINT_DYAD_DEPOSIT", "outputs": [ { - "internalType": "bool", + "internalType": "int256", "name": "", - "type": "bool" + "type": "int256" } ], "stateMutability": "view", @@ -695,26 +659,33 @@ }, { "inputs": [], - "name": "symbol", + "name": "MIN_PRICE_CHANGE_BETWEEN_SYNC", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MIN_TIME_BETWEEN_SYNC", + "outputs": [ { "internalType": "uint256", - "name": "index", + "name": "", "type": "uint256" } ], - "name": "tokenByIndex", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "XP_CLAIM_REWARD", "outputs": [ { "internalType": "uint256", @@ -726,19 +697,34 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "XP_DIBS_BURN_REWARD", + "outputs": [ { - "internalType": "address", - "name": "owner", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "XP_DIBS_MINT_REWARD", + "outputs": [ { "internalType": "uint256", - "name": "index", + "name": "", "type": "uint256" } ], - "name": "tokenOfOwnerByIndex", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "XP_LIQUIDATION_REWARD", "outputs": [ { "internalType": "uint256", @@ -750,19 +736,26 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "XP_MINT_REWARD", + "outputs": [ { "internalType": "uint256", - "name": "tokenId", + "name": "", "type": "uint256" } ], - "name": "tokenURI", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "XP_NORM_FACTOR", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", @@ -770,7 +763,7 @@ }, { "inputs": [], - "name": "totalSupply", + "name": "XP_SYNC_REWARD", "outputs": [ { "internalType": "uint256", @@ -784,10 +777,37 @@ { "inputs": [ { - "internalType": "address", - "name": "from", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "_idToBlockOfLastDeposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "activate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "address", "name": "to", @@ -799,60 +819,58 @@ "type": "uint256" } ], - "name": "transferFrom", + "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ { "internalType": "uint256", - "name": "id", + "name": "", "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "withdrawn", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "deposit", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "xp", - "type": "uint256" - } - ], - "internalType": "struct IdNFT.Nft", - "name": "nft", - "type": "tuple" } ], - "name": "updateNft", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "minXP", + "name": "id", "type": "uint256" - }, + } + ], + "name": "claim", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "maxXP", + "name": "id", "type": "uint256" } ], - "name": "updateXP", + "name": "deactivate", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -870,1927 +888,14066 @@ "type": "uint256" } ], - "name": "withdraw", - "outputs": [], + "name": "deposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" - } - ], - "bytecode": { - "object": "0x6080604052620dbba0600c5561012c600c546200001d9190620008fb565b600d553480156200002d57600080fd5b506040516200374c3803806200374c833981016040819052620000509162000917565b60405180604001604052806008815260200167111650510813919560c21b815250604051806040016040528060048152602001631913919560e21b81525081600090816200009f919062000a13565b506001620000ae828262000a13565b5050600e80546001600160a01b0319166001600160a01b03861617905550600b8290558015620001d957620000f7737eeffd5d089b1351eccc388022d8b823676df424620001e2565b506200011773cad2eada97ad393584fe84a5cca1ef3093e45ae4620001e2565b506200013773414b60745072088d013721b4a28a0559b1a9d213620001e2565b5062000157733682827f48f8e023ee40707dee82620d0b63579f620001e2565b506200017773e779fb090af9dfbb3b4c18ed571ad6390df52ae2620001e2565b5062000197739f919a292e62594f2d8db13f6a4adb1691d6c60d620001e2565b50620001b773f37ec513af2cd91a76d386680fd2df6ba3bb7520620001e2565b50620001d773e9fc93e678f2bde7a0a3ba3d39f505ef63a68c97620001e2565b505b50505062000b21565b600a5461012c620001f260085490565b106200023a5760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b60448201526064015b60405180910390fd5b620002468282620002f2565b6001600a60008282546200025b9190620008fb565b9091555050600081815260106020526040902060085461012c600c54620002839190620008fb565b6200028f919062000adf565b6200029c906001620008fb565b60028201819055600c541115620002b6576002810154600c555b60405182906001600160a01b038516907ff2b290a76feb54be358b555507421d765609171aefa0646f109a653228ff81b890600090a350919050565b6001600160a01b0382166200034a5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640162000231565b6000818152600260205260409020546001600160a01b031615620003b15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640162000231565b620003c160008383600162000493565b6000818152600260205260409020546001600160a01b031615620004285760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640162000231565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b620004ac84848484620004b260201b620015751760201c565b50505050565b620004cb848484846200061660201b620016b51760201c565b6001811115620005445760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f727465640000000000000000000000606482015260840162000231565b816001600160a01b038516620005a3576200059d81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b620005c9565b836001600160a01b0316856001600160a01b031614620005c957620005c98582620006a5565b6001600160a01b038416620005e957620005e38162000752565b6200060f565b846001600160a01b0316846001600160a01b0316146200060f576200060f84826200080c565b5050505050565b6001811115620004ac576001600160a01b0384161562000660576001600160a01b038416600090815260036020526040812080548392906200065a90849062000adf565b90915550505b6001600160a01b03831615620004ac576001600160a01b038316600090815260036020526040812080548392906200069a908490620008fb565b909155505050505050565b60006001620006bf846200085d60201b62000ed61760201c565b620006cb919062000adf565b6000838152600760205260409020549091508082146200071f576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090620007669060019062000adf565b6000838152600960205260408120546008805493945090928490811062000791576200079162000af5565b906000526020600020015490508060088381548110620007b557620007b562000af5565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480620007f057620007f062000b0b565b6001900381819060005260206000200160009055905550505050565b600062000824836200085d60201b62000ed61760201c565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160a01b038216620008c95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840162000231565b506001600160a01b031660009081526003602052604090205490565b634e487b7160e01b600052601160045260246000fd5b80820180821115620009115762000911620008e5565b92915050565b6000806000606084860312156200092d57600080fd5b83516001600160a01b03811681146200094557600080fd5b60208501516040860151919450925080151581146200096357600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200099957607f821691505b602082108103620009ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a0e57600081815260208120601f850160051c81016020861015620009e95750805b601f850160051c820191505b8181101562000a0a57828155600101620009f5565b5050505b505050565b81516001600160401b0381111562000a2f5762000a2f6200096e565b62000a478162000a40845462000984565b84620009c0565b602080601f83116001811462000a7f576000841562000a665750858301515b600019600386901b1c1916600185901b17855562000a0a565b600085815260208120601f198616915b8281101562000ab05788860151825594840194600190910190840162000a8f565b508582101562000acf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115620009115762000911620008e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b612c1b8062000b316000396000f3fe6080604052600436106102045760003560e01c80636352211e11610118578063b88d4fde116100a0578063d9dee3d11161006f578063d9dee3d1146105e6578063e2bbb158146105fc578063e985e9c51461061c578063e9c2e14b14610665578063fb9103cc1461067857600080fd5b8063b88d4fde1461057a578063c6c533981461059a578063c87b56dd146105b0578063cc672ae2146105d057600080fd5b806395d89b41116100e757806395d89b41146104ef578063a22cb46514610504578063add95a5114610524578063ae34b6e114610544578063b0082cdf1461055a57600080fd5b80636352211e1461047957806370a08231146104995780637cbc2373146104b9578063959f7857146104d957600080fd5b806332cb6b0c1161019b578063441a3e701161016a578063441a3e70146103a25780634437152a146103c257806346e85757146103e2578063483afb2d146104025780634f6ccce71461045957600080fd5b806332cb6b0c146103395780633924bc9a1461034f57806342842e0e1461036257806342966c681461038257600080fd5b806316f0115b116101d757806316f0115b146102ba57806318160ddd146102da57806323b872dd146102f95780632f745c591461031957600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b506102296102243660046124e0565b61068b565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b5061025361069c565b604051610235919061254d565b34801561026c57600080fd5b5061028061027b366004612560565b61072e565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b336600461258e565b610755565b005b3480156102c657600080fd5b50600f54610280906001600160a01b031681565b3480156102e657600080fd5b506008545b604051908152602001610235565b34801561030557600080fd5b506102b86103143660046125ba565b61086f565b34801561032557600080fd5b506102eb61033436600461258e565b6108a1565b34801561034557600080fd5b506102eb61012c81565b6102eb61035d36600461269e565b610937565b34801561036e57600080fd5b506102b861037d3660046125ba565b6109a2565b34801561038e57600080fd5b506102b861039d366004612560565b6109bd565b3480156103ae57600080fd5b506102b86103bd3660046126dd565b6109ee565b3480156103ce57600080fd5b506102b86103dd3660046126ff565b610d14565b3480156103ee57600080fd5b506102b86103fd36600461271c565b610d8f565b34801561040e57600080fd5b5061043e61041d366004612560565b60106020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610235565b34801561046557600080fd5b506102eb610474366004612560565b610de3565b34801561048557600080fd5b50610280610494366004612560565b610e76565b3480156104a557600080fd5b506102eb6104b43660046126ff565b610ed6565b3480156104c557600080fd5b506102b86104d43660046126dd565b610f5c565b3480156104e557600080fd5b506102eb600a5481565b3480156104fb57600080fd5b50610253611190565b34801561051057600080fd5b506102b861051f366004612757565b61119f565b34801561053057600080fd5b50600e54610280906001600160a01b031681565b34801561055057600080fd5b506102eb600b5481565b34801561056657600080fd5b506102b86105753660046126dd565b6111ae565b34801561058657600080fd5b506102b8610595366004612790565b6111f8565b3480156105a657600080fd5b506102eb613a9881565b3480156105bc57600080fd5b506102536105cb366004612560565b611230565b3480156105dc57600080fd5b506102eb600c5481565b3480156105f257600080fd5b506102eb600d5481565b34801561060857600080fd5b506102b86106173660046126dd565b6112a4565b34801561062857600080fd5b50610229610637366004612854565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102eb6106733660046126ff565b6114c6565b6102b8610686366004612560565b6114e0565b60006106968261173d565b92915050565b6060600080546106ab90612882565b80601f01602080910402602001604051908101604052809291908181526020018280546106d790612882565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b5050505050905090565b600061073982611762565b506000908152600460205260409020546001600160a01b031690565b600061076082610e76565b9050806001600160a01b0316836001600160a01b0316036107d25760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806107ee57506107ee8133610637565b6108605760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016107c9565b61086a83836117c1565b505050565b61087a335b8261182f565b6108965760405162461bcd60e51b81526004016107c9906128bc565b61086a8383836118c7565b60006108ac83610ed6565b821061090e5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016107c9565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600f546000906001600160a01b031633146109645760405162461bcd60e51b81526004016107c990612909565b600061096f85611a38565b60008181526010602052604090819020908601516002820155855181559091506109998285611b36565b50949350505050565b61086a838383604051806020016040528060008152506111f8565b6109c633610874565b6109e25760405162461bcd60e51b81526004016107c9906128bc565b6109eb81611d3d565b50565b6040516331a9108f60e11b815260048101839052829033903090636352211e90602401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061294d565b6001600160a01b031614610a785760405162461bcd60e51b81526004016107c99061296a565b600e54600f546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed919061299f565b905060008182600e60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a919061299f565b610b7491906129ce565b610b80906127106129e1565b610b8a91906129f8565b9050613a988110610bcf5760405162461bcd60e51b815260206004820152600f60248201526e4352206973206f766572203135302560881b60448201526064016107c9565b60008581526010602052604090206001810154851315610c3f5760405162461bcd60e51b815260206004820152602560248201527f644e46543a20576974686472617720616d6f756e7420657863656564732064656044820152641c1bdcda5d60da1b60648201526084016107c9565b84816001016000828254610c539190612a1a565b9091555050805485908290600090610c6c908490612a41565b9091555050600f5460405163f3fef3a360e01b8152336004820152602481018790526001600160a01b039091169063f3fef3a390604401600060405180830381600087803b158015610cbd57600080fd5b505af1158015610cd1573d6000803e3d6000fd5b50506040518781528892503391507f97c68706573f736c58fd91ea1dd5982061ea2b11e1ec1647ca0a9e7da2b3ecad9060200160405180910390a3505050505050565b600f546001600160a01b031615610d6d5760405162461bcd60e51b815260206004820152601960248201527f644e46543a20506f6f6c20697320616c7265616479207365740000000000000060448201526064016107c9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b03163314610db95760405162461bcd60e51b81526004016107c990612909565b60009182526010602090815260409283902082518155908201516001820155910151600290910155565b6000610dee60085490565b8210610e515760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016107c9565b60088281548110610e6457610e64612a54565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806106965760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016107c9565b60006001600160a01b038216610f405760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016107c9565b506001600160a01b031660009081526003602052604090205490565b6040516331a9108f60e11b815260048101839052829033903090636352211e90602401602060405180830381865afa158015610f9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc0919061294d565b6001600160a01b031614610fe65760405162461bcd60e51b81526004016107c99061296a565b600083815260106020526040902080548311156110565760405162461bcd60e51b815260206004820152602860248201527f644e46543a20416d6f756e7420746f2072656465656d2065786365656473207760448201526734ba34323930bbb760c11b60648201526084016107c9565b8281600001600082825461106a91906129ce565b9091555050600e54600f546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018690529116906323b872dd906064016020604051808303816000875af11580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee9190612a6a565b50600f546040516301e9a69560e41b8152336004820152602481018590526001600160a01b0390911690631e9a695090604401600060405180830381600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b50506040518581528692503391507f978afd9cd3f8b45b5bc6b990498f81efbcd4bbb929648dd2eb337276971de0f29060200160405180910390a350505050565b6060600180546106ab90612882565b6111aa338383611de0565b5050565b600f546001600160a01b031633146111d85760405162461bcd60e51b81526004016107c990612909565b600c548210156111e857600c8290555b600d548111156111aa57600d5550565b611202338361182f565b61121e5760405162461bcd60e51b81526004016107c9906128bc565b61122a84848484611ea6565b50505050565b606061123b82611762565b600061125260408051602081019091526000815290565b90506000815111611272576040518060200160405280600081525061129d565b8061127c84611ed9565b60405160200161128d929190612a87565b6040516020818303038152906040525b9392505050565b600082815260106020526040902080548211156113035760405162461bcd60e51b815260206004820152601f60248201527f644e46543a204465706f73697420657863656564732077697468647261776e0060448201526064016107c9565b818160010160008282546113179190612ab6565b90915550508054829082906000906113309084906129ce565b9091555050600e546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b09190612a6a565b50600e54600f5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015611406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142a9190612a6a565b50600f5460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561147157600080fd5b505af1158015611485573d6000803e3d6000fd5b50506040518481528592503391507fb2b57d77f3386e7108afb8ee9a58008631e884cb4ff8cc775d3d5b6c77a44262906020015b60405180910390a3505050565b6000806114d283611a38565b905061069681600b54611b36565b6040516331a9108f60e11b815260048101829052819033903090636352211e90602401602060405180830381865afa158015611520573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611544919061294d565b6001600160a01b03161461156a5760405162461bcd60e51b81526004016107c99061296a565b6111aa826000611b36565b611581848484846116b5565b60018111156115f05760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016107c9565b816001600160a01b03851661164c5761164781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61166f565b836001600160a01b0316856001600160a01b03161461166f5761166f8582611f6c565b6001600160a01b03841661168b5761168681612009565b6116ae565b846001600160a01b0316846001600160a01b0316146116ae576116ae84826120b8565b5050505050565b600181111561122a576001600160a01b038416156116fb576001600160a01b038416600090815260036020526040812080548392906116f59084906129ce565b90915550505b6001600160a01b0383161561122a576001600160a01b03831660009081526003602052604081208054839290611732908490612a41565b909155505050505050565b60006001600160e01b0319821663780e9d6360e01b14806106965750610696826120fc565b6000818152600260205260409020546001600160a01b03166109eb5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016107c9565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117f682610e76565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061183b83610e76565b600f549091506001600160a01b038581169116148061186b5750806001600160a01b0316846001600160a01b0316145b8061189b57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806118bf5750836001600160a01b03166118b48461072e565b6001600160a01b0316145b949350505050565b826001600160a01b03166118da82610e76565b6001600160a01b0316146119005760405162461bcd60e51b81526004016107c990612ade565b6001600160a01b0382166119625760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016107c9565b61196f838383600161214c565b826001600160a01b031661198282610e76565b6001600160a01b0316146119a85760405162461bcd60e51b81526004016107c990612ade565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a5461012c611a4760085490565b10611a895760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b60448201526064016107c9565b611a938282612158565b6001600a6000828254611aa69190612a41565b9091555050600081815260106020526040902060085461012c600c54611acc9190612a41565b611ad691906129ce565b611ae1906001612a41565b60028201819055600c541115611afa576002810154600c555b60405182906001600160a01b038516907ff2b290a76feb54be358b555507421d765609171aefa0646f109a653228ff81b890600090a350919050565b60003411611b955760405162461bcd60e51b815260206004820152602660248201527f596f75206e65656420746f2073656e6420736f6d652045544820746f206d696e6044820152651d08191e585960d21b60648201526084016107c9565b600f54604051633ee440f360e21b8152600481018390526000916001600160a01b03169063fb9103cc90349060240160206040518083038185885af1158015611be2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c07919061299f565b600e54600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015611c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c829190612a6a565b50600f5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611cc957600080fd5b505af1158015611cdd573d6000803e3d6000fd5b50505060008481526010602052604081206001018054849350909190611d04908490612ab6565b9091555050604051818152839033907f3a7ec3c4655340144c5d88cd1e88cf7146e64e9a6d3db1b306f130db3579fdb4906020016114b9565b6000611d4882610e76565b9050611d5881600084600161214c565b611d6182610e76565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b031603611e415760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016107c9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016114b9565b611eb18484846118c7565b611ebd848484846122f1565b61122a5760405162461bcd60e51b81526004016107c990612b23565b60606000611ee6836123f2565b600101905060008167ffffffffffffffff811115611f0657611f066125fb565b6040519080825280601f01601f191660200182016040528015611f30576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f3a57509392505050565b60006001611f7984610ed6565b611f8391906129ce565b600083815260076020526040902054909150808214611fd6576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061201b906001906129ce565b6000838152600960205260408120546008805493945090928490811061204357612043612a54565b90600052602060002001549050806008838154811061206457612064612a54565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061209c5761209c612b75565b6001900381819060005260206000200160009055905550505050565b60006120c383610ed6565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160e01b031982166380ac58cd60e01b148061212d57506001600160e01b03198216635b5e139f60e01b145b8061069657506301ffc9a760e01b6001600160e01b0319831614610696565b61122a84848484611575565b6001600160a01b0382166121ae5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016107c9565b6000818152600260205260409020546001600160a01b0316156122135760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016107c9565b61222160008383600161214c565b6000818152600260205260409020546001600160a01b0316156122865760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016107c9565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b156123e757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612335903390899088908890600401612b8b565b6020604051808303816000875af1925050508015612370575060408051601f3d908101601f1916820190925261236d91810190612bc8565b60015b6123cd573d80801561239e576040519150601f19603f3d011682016040523d82523d6000602084013e6123a3565b606091505b5080516000036123c55760405162461bcd60e51b81526004016107c990612b23565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118bf565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106124315772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061245d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061247b57662386f26fc10000830492506010015b6305f5e1008310612493576305f5e100830492506008015b61271083106124a757612710830492506004015b606483106124b9576064830492506002015b600a83106106965760010192915050565b6001600160e01b0319811681146109eb57600080fd5b6000602082840312156124f257600080fd5b813561129d816124ca565b60005b83811015612518578181015183820152602001612500565b50506000910152565b600081518084526125398160208601602086016124fd565b601f01601f19169290920160200192915050565b60208152600061129d6020830184612521565b60006020828403121561257257600080fd5b5035919050565b6001600160a01b03811681146109eb57600080fd5b600080604083850312156125a157600080fd5b82356125ac81612579565b946020939093013593505050565b6000806000606084860312156125cf57600080fd5b83356125da81612579565b925060208401356125ea81612579565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561263a5761263a6125fb565b604052919050565b60006060828403121561265457600080fd5b6040516060810181811067ffffffffffffffff82111715612677576126776125fb565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600060a084860312156126b357600080fd5b83356126be81612579565b92506126cd8560208601612642565b9150608084013590509250925092565b600080604083850312156126f057600080fd5b50508035926020909101359150565b60006020828403121561271157600080fd5b813561129d81612579565b6000806080838503121561272f57600080fd5b823591506127408460208501612642565b90509250929050565b80151581146109eb57600080fd5b6000806040838503121561276a57600080fd5b823561277581612579565b9150602083013561278581612749565b809150509250929050565b600080600080608085870312156127a657600080fd5b84356127b181612579565b93506020858101356127c281612579565b935060408601359250606086013567ffffffffffffffff808211156127e657600080fd5b818801915088601f8301126127fa57600080fd5b81358181111561280c5761280c6125fb565b61281e601f8201601f19168501612611565b9150808252898482850101111561283457600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806040838503121561286757600080fd5b823561287281612579565b9150602083013561278581612579565b600181811c9082168061289657607f821691505b6020821081036128b657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526024908201527f644e46543a204f6e6c792063616c6c61626c6520627920506f6f6c20636f6e746040820152631c9858dd60e21b606082015260800190565b60006020828403121561295f57600080fd5b815161129d81612579565b6020808252818101527f644e46543a204f6e6c792063616c6c61626c65206279204e4654206f776e6572604082015260600190565b6000602082840312156129b157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610696576106966129b8565b8082028115828204841417610696576106966129b8565b600082612a1557634e487b7160e01b600052601260045260246000fd5b500490565b8181036000831280158383131683831282161715612a3a57612a3a6129b8565b5092915050565b80820180821115610696576106966129b8565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a7c57600080fd5b815161129d81612749565b60008351612a998184602088016124fd565b835190830190612aad8183602088016124fd565b01949350505050565b8082018281126000831280158216821582161715612ad657612ad66129b8565b505092915050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612bbe90830184612521565b9695505050505050565b600060208284031215612bda57600080fd5b815161129d816124ca56fea264697066735822122064b775c914de91e4745e33e881e8b3cdf27f2b63ab21cb0fa1c1aa07604fa41c64736f6c63430008110033", - "sourceMap": "342:8319:31:-:0;;;1094:6;1073:27;;494:3;1254:6;;:19;;;;:::i;:::-;1233:40;;2001:906;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1390:113:11;;;;;;;;;;;;;-1:-1:-1;;;1390:113:11;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:11;;;1464:5;1456;:13;;;;;;:::i;:::-;-1:-1:-1;1479:7:11;:17;1489:7;1479;:17;:::i;:::-;-1:-1:-1;;2138:4:31::1;:29:::0;;-1:-1:-1;;;;;;2138:29:31::1;-1:-1:-1::0;;;;;2138:29:31;::::1;;::::0;;-1:-1:-1;2173:15:31::1;:32:::0;;;2212:691;::::1;;;2322:52;2331:42;2322:8;:52::i;:::-;-1:-1:-1::0;2401:52:31::1;2410:42;2401:8;:52::i;:::-;-1:-1:-1::0;2477:52:31::1;2486:42;2477:8;:52::i;:::-;-1:-1:-1::0;2550:52:31::1;2559:42;2550:8;:52::i;:::-;-1:-1:-1::0;2625:52:31::1;2634:42;2625:8;:52::i;:::-;-1:-1:-1::0;2696:52:31::1;2705:42;2696:8;:52::i;:::-;-1:-1:-1::0;2765:52:31::1;2774:42;2765:8;:52::i;:::-;-1:-1:-1::0;2836:52:31::1;2845:42;2836:8;:52::i;:::-;;2212:691;2001:906:::0;;;342:8319;;5669:859;5920:13;;494:3;5947:13;1702:10:15;:17;;1615:111;5947:13:31;:26;5939:57;;;;-1:-1:-1;;;5939:57:31;;3717:2:41;5939:57:31;;;3699:21:41;3756:2;3736:18;;;3729:30;-1:-1:-1;;;3775:18:41;;;3768:48;3833:18;;5939:57:31;;;;;;;;;6002:19;6008:8;6018:2;6002:5;:19::i;:::-;6045:1;6028:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;6053:21:31;6077:11;;;:7;:11;;;;;1702:10:15;:17;494:3:31;6346:6;;:19;;;;:::i;:::-;:33;;;;:::i;:::-;:35;;6380:1;6346:35;:::i;:::-;6337:6;;;:44;;;6462:6;;-1:-1:-1;6449:41:31;;;6481:6;;;;6472;:15;6449:41;6500:23;;6520:2;;-1:-1:-1;;;;;6500:23:31;;;;;;;;5731:797;5669:859;;;:::o;9091:920:11:-;-1:-1:-1;;;;;9170:16:11;;9162:61;;;;-1:-1:-1;;;9162:61:11;;4197:2:41;9162:61:11;;;4179:21:41;;;4216:18;;;4209:30;4275:34;4255:18;;;4248:62;4327:18;;9162:61:11;3995:356:41;9162:61:11;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:11;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:11;;4558:2:41;9233:58:11;;;4540:21:41;4597:2;4577:18;;;4570:30;4636;4616:18;;;4609:58;4684:18;;9233:58:11;4356:352:41;9233:58:11;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:11;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:11;;4558:2:41;9437:58:11;;;4540:21:41;4597:2;4577:18;;;4570:30;4636;4616:18;;;4609:58;4684:18;;9437:58:11;4356:352:41;9437:58:11;-1:-1:-1;;;;;9837:13:11;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:11;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;9091:920;;:::o;3150:301:31:-;3392:56;3419:4;3425:2;3429:7;3438:9;3392:26;;;;;:56;;:::i;:::-;3150:301;;;;:::o;2097:890:15:-;2268:61;2295:4;2301:2;2305:12;2319:9;2268:26;;;;;:61;;:::i;:::-;2356:1;2344:9;:13;2340:219;;;2485:63;;-1:-1:-1;;;2485:63:15;;4915:2:41;2485:63:15;;;4897:21:41;4954:2;4934:18;;;4927:30;4993:34;4973:18;;;4966:62;5064:23;5044:18;;;5037:51;5105:19;;2485:63:15;4713:417:41;2340:219:15;2587:12;-1:-1:-1;;;;;2614:18:15;;2610:183;;2648:40;2680:7;3796:10;:17;;3769:24;;;;:15;:24;;;;;:44;;;3823:24;;;;;;;;;;;;3693:161;2648:40;2610:183;;;2717:2;-1:-1:-1;;;;;2709:10:15;:4;-1:-1:-1;;;;;2709:10:15;;2705:88;;2735:47;2768:4;2774:7;2735:32;:47::i;:::-;-1:-1:-1;;;;;2806:16:15;;2802:179;;2838:45;2875:7;2838:36;:45::i;:::-;2802:179;;;2910:4;-1:-1:-1;;;;;2904:10:15;:2;-1:-1:-1;;;;;2904:10:15;;2900:81;;2930:40;2958:2;2962:7;2930:27;:40::i;:::-;2258:729;2097:890;;;;:::o;15698:396:11:-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:11;;;15899:85;;-1:-1:-1;;;;;15941:15:11;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:11;-1:-1:-1;;;;;16001:16:11;;;15997:81;;-1:-1:-1;;;;;16037:13:11;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:11;;;;:::o;4471:970:15:-;4733:22;4783:1;4758:22;4775:4;4758:16;;;;;:22;;:::i;:::-;:26;;;;:::i;:::-;4794:18;4815:26;;;:17;:26;;;;;;4733:51;;-1:-1:-1;4945:28:15;;;4941:323;;-1:-1:-1;;;;;5011:18:15;;4989:19;5011:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5060:30;;;;;;:44;;;5176:30;;:17;:30;;;;;:43;;;4941:323;-1:-1:-1;5357:26:15;;;;:17;:26;;;;;;;;5350:33;;;-1:-1:-1;;;;;5400:18:15;;;;;:12;:18;;;;;:34;;;;;;;5393:41;4471:970::o;5729:1061::-;6003:10;:17;5978:22;;6003:21;;6023:1;;6003:21;:::i;:::-;6034:18;6055:24;;;:15;:24;;;;;;6423:10;:26;;5978:46;;-1:-1:-1;6055:24:15;;5978:46;;6423:26;;;;;;:::i;:::-;;;;;;;;;6401:48;;6485:11;6460:10;6471;6460:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6564:28;;;:15;:28;;;;;;;:41;;;6733:24;;;;;6726:31;6767:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5800:990;;;5729:1061;:::o;3281:217::-;3365:14;3382:20;3399:2;3382:16;;;;;:20;;:::i;:::-;-1:-1:-1;;;;;3412:16:15;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3456:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3281:217:15:o;1929:204:11:-;2001:7;-1:-1:-1;;;;;2028:19:11;;2020:73;;;;-1:-1:-1;;;2020:73:11;;5601:2:41;2020:73:11;;;5583:21:41;5640:2;5620:18;;;5613:30;5679:34;5659:18;;;5652:62;-1:-1:-1;;;5730:18:41;;;5723:39;5779:19;;2020:73:11;5399:405:41;2020:73:11;-1:-1:-1;;;;;;2110:16:11;;;;;:9;:16;;;;;;;1929:204::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:513::-;361:6;369;377;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;472:16;;-1:-1:-1;;;;;517:31:41;;507:42;;497:70;;563:1;560;553:12;497:70;631:2;616:18;;610:25;680:2;665:18;;659:25;586:5;;-1:-1:-1;610:25:41;-1:-1:-1;722:15:41;;715:23;703:36;;693:64;;753:1;750;743:12;693:64;776:7;766:17;;;276:513;;;;;:::o;794:127::-;855:10;850:3;846:20;843:1;836:31;886:4;883:1;876:15;910:4;907:1;900:15;926:380;1005:1;1001:12;;;;1048;;;1069:61;;1123:4;1115:6;1111:17;1101:27;;1069:61;1176:2;1168:6;1165:14;1145:18;1142:38;1139:161;;1222:10;1217:3;1213:20;1210:1;1203:31;1257:4;1254:1;1247:15;1285:4;1282:1;1275:15;1139:161;;926:380;;;:::o;1437:545::-;1539:2;1534:3;1531:11;1528:448;;;1575:1;1600:5;1596:2;1589:17;1645:4;1641:2;1631:19;1715:2;1703:10;1699:19;1696:1;1692:27;1686:4;1682:38;1751:4;1739:10;1736:20;1733:47;;;-1:-1:-1;1774:4:41;1733:47;1829:2;1824:3;1820:12;1817:1;1813:20;1807:4;1803:31;1793:41;;1884:82;1902:2;1895:5;1892:13;1884:82;;;1947:17;;;1928:1;1917:13;1884:82;;;1888:3;;;1528:448;1437:545;;;:::o;2158:1352::-;2278:10;;-1:-1:-1;;;;;2300:30:41;;2297:56;;;2333:18;;:::i;:::-;2362:97;2452:6;2412:38;2444:4;2438:11;2412:38;:::i;:::-;2406:4;2362:97;:::i;:::-;2514:4;;2578:2;2567:14;;2595:1;2590:663;;;;3297:1;3314:6;3311:89;;;-1:-1:-1;3366:19:41;;;3360:26;3311:89;-1:-1:-1;;2115:1:41;2111:11;;;2107:24;2103:29;2093:40;2139:1;2135:11;;;2090:57;3413:81;;2560:944;;2590:663;1384:1;1377:14;;;1421:4;1408:18;;-1:-1:-1;;2626:20:41;;;2744:236;2758:7;2755:1;2752:14;2744:236;;;2847:19;;;2841:26;2826:42;;2939:27;;;;2907:1;2895:14;;;;2774:19;;2744:236;;;2748:3;3008:6;2999:7;2996:19;2993:201;;;3069:19;;;3063:26;-1:-1:-1;;3152:1:41;3148:14;;;3164:3;3144:24;3140:37;3136:42;3121:58;3106:74;;2993:201;-1:-1:-1;;;;;3240:1:41;3224:14;;;3220:22;3207:36;;-1:-1:-1;2158:1352:41:o;3862:128::-;3929:9;;;3950:11;;;3947:37;;;3964:18;;:::i;5135:127::-;5196:10;5191:3;5187:20;5184:1;5177:31;5227:4;5224:1;5217:15;5251:4;5248:1;5241:15;5267:127;5328:10;5323:3;5319:20;5316:1;5309:31;5359:4;5356:1;5349:15;5383:4;5380:1;5373:15;5399:405;342:8319:31;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080604052600436106102045760003560e01c80636352211e11610118578063b88d4fde116100a0578063d9dee3d11161006f578063d9dee3d1146105e6578063e2bbb158146105fc578063e985e9c51461061c578063e9c2e14b14610665578063fb9103cc1461067857600080fd5b8063b88d4fde1461057a578063c6c533981461059a578063c87b56dd146105b0578063cc672ae2146105d057600080fd5b806395d89b41116100e757806395d89b41146104ef578063a22cb46514610504578063add95a5114610524578063ae34b6e114610544578063b0082cdf1461055a57600080fd5b80636352211e1461047957806370a08231146104995780637cbc2373146104b9578063959f7857146104d957600080fd5b806332cb6b0c1161019b578063441a3e701161016a578063441a3e70146103a25780634437152a146103c257806346e85757146103e2578063483afb2d146104025780634f6ccce71461045957600080fd5b806332cb6b0c146103395780633924bc9a1461034f57806342842e0e1461036257806342966c681461038257600080fd5b806316f0115b116101d757806316f0115b146102ba57806318160ddd146102da57806323b872dd146102f95780632f745c591461031957600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b506102296102243660046124e0565b61068b565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b5061025361069c565b604051610235919061254d565b34801561026c57600080fd5b5061028061027b366004612560565b61072e565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b336600461258e565b610755565b005b3480156102c657600080fd5b50600f54610280906001600160a01b031681565b3480156102e657600080fd5b506008545b604051908152602001610235565b34801561030557600080fd5b506102b86103143660046125ba565b61086f565b34801561032557600080fd5b506102eb61033436600461258e565b6108a1565b34801561034557600080fd5b506102eb61012c81565b6102eb61035d36600461269e565b610937565b34801561036e57600080fd5b506102b861037d3660046125ba565b6109a2565b34801561038e57600080fd5b506102b861039d366004612560565b6109bd565b3480156103ae57600080fd5b506102b86103bd3660046126dd565b6109ee565b3480156103ce57600080fd5b506102b86103dd3660046126ff565b610d14565b3480156103ee57600080fd5b506102b86103fd36600461271c565b610d8f565b34801561040e57600080fd5b5061043e61041d366004612560565b60106020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610235565b34801561046557600080fd5b506102eb610474366004612560565b610de3565b34801561048557600080fd5b50610280610494366004612560565b610e76565b3480156104a557600080fd5b506102eb6104b43660046126ff565b610ed6565b3480156104c557600080fd5b506102b86104d43660046126dd565b610f5c565b3480156104e557600080fd5b506102eb600a5481565b3480156104fb57600080fd5b50610253611190565b34801561051057600080fd5b506102b861051f366004612757565b61119f565b34801561053057600080fd5b50600e54610280906001600160a01b031681565b34801561055057600080fd5b506102eb600b5481565b34801561056657600080fd5b506102b86105753660046126dd565b6111ae565b34801561058657600080fd5b506102b8610595366004612790565b6111f8565b3480156105a657600080fd5b506102eb613a9881565b3480156105bc57600080fd5b506102536105cb366004612560565b611230565b3480156105dc57600080fd5b506102eb600c5481565b3480156105f257600080fd5b506102eb600d5481565b34801561060857600080fd5b506102b86106173660046126dd565b6112a4565b34801561062857600080fd5b50610229610637366004612854565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102eb6106733660046126ff565b6114c6565b6102b8610686366004612560565b6114e0565b60006106968261173d565b92915050565b6060600080546106ab90612882565b80601f01602080910402602001604051908101604052809291908181526020018280546106d790612882565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b5050505050905090565b600061073982611762565b506000908152600460205260409020546001600160a01b031690565b600061076082610e76565b9050806001600160a01b0316836001600160a01b0316036107d25760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806107ee57506107ee8133610637565b6108605760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016107c9565b61086a83836117c1565b505050565b61087a335b8261182f565b6108965760405162461bcd60e51b81526004016107c9906128bc565b61086a8383836118c7565b60006108ac83610ed6565b821061090e5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016107c9565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600f546000906001600160a01b031633146109645760405162461bcd60e51b81526004016107c990612909565b600061096f85611a38565b60008181526010602052604090819020908601516002820155855181559091506109998285611b36565b50949350505050565b61086a838383604051806020016040528060008152506111f8565b6109c633610874565b6109e25760405162461bcd60e51b81526004016107c9906128bc565b6109eb81611d3d565b50565b6040516331a9108f60e11b815260048101839052829033903090636352211e90602401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061294d565b6001600160a01b031614610a785760405162461bcd60e51b81526004016107c99061296a565b600e54600f546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed919061299f565b905060008182600e60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a919061299f565b610b7491906129ce565b610b80906127106129e1565b610b8a91906129f8565b9050613a988110610bcf5760405162461bcd60e51b815260206004820152600f60248201526e4352206973206f766572203135302560881b60448201526064016107c9565b60008581526010602052604090206001810154851315610c3f5760405162461bcd60e51b815260206004820152602560248201527f644e46543a20576974686472617720616d6f756e7420657863656564732064656044820152641c1bdcda5d60da1b60648201526084016107c9565b84816001016000828254610c539190612a1a565b9091555050805485908290600090610c6c908490612a41565b9091555050600f5460405163f3fef3a360e01b8152336004820152602481018790526001600160a01b039091169063f3fef3a390604401600060405180830381600087803b158015610cbd57600080fd5b505af1158015610cd1573d6000803e3d6000fd5b50506040518781528892503391507f97c68706573f736c58fd91ea1dd5982061ea2b11e1ec1647ca0a9e7da2b3ecad9060200160405180910390a3505050505050565b600f546001600160a01b031615610d6d5760405162461bcd60e51b815260206004820152601960248201527f644e46543a20506f6f6c20697320616c7265616479207365740000000000000060448201526064016107c9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b03163314610db95760405162461bcd60e51b81526004016107c990612909565b60009182526010602090815260409283902082518155908201516001820155910151600290910155565b6000610dee60085490565b8210610e515760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016107c9565b60088281548110610e6457610e64612a54565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806106965760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016107c9565b60006001600160a01b038216610f405760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016107c9565b506001600160a01b031660009081526003602052604090205490565b6040516331a9108f60e11b815260048101839052829033903090636352211e90602401602060405180830381865afa158015610f9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc0919061294d565b6001600160a01b031614610fe65760405162461bcd60e51b81526004016107c99061296a565b600083815260106020526040902080548311156110565760405162461bcd60e51b815260206004820152602860248201527f644e46543a20416d6f756e7420746f2072656465656d2065786365656473207760448201526734ba34323930bbb760c11b60648201526084016107c9565b8281600001600082825461106a91906129ce565b9091555050600e54600f546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018690529116906323b872dd906064016020604051808303816000875af11580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee9190612a6a565b50600f546040516301e9a69560e41b8152336004820152602481018590526001600160a01b0390911690631e9a695090604401600060405180830381600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b50506040518581528692503391507f978afd9cd3f8b45b5bc6b990498f81efbcd4bbb929648dd2eb337276971de0f29060200160405180910390a350505050565b6060600180546106ab90612882565b6111aa338383611de0565b5050565b600f546001600160a01b031633146111d85760405162461bcd60e51b81526004016107c990612909565b600c548210156111e857600c8290555b600d548111156111aa57600d5550565b611202338361182f565b61121e5760405162461bcd60e51b81526004016107c9906128bc565b61122a84848484611ea6565b50505050565b606061123b82611762565b600061125260408051602081019091526000815290565b90506000815111611272576040518060200160405280600081525061129d565b8061127c84611ed9565b60405160200161128d929190612a87565b6040516020818303038152906040525b9392505050565b600082815260106020526040902080548211156113035760405162461bcd60e51b815260206004820152601f60248201527f644e46543a204465706f73697420657863656564732077697468647261776e0060448201526064016107c9565b818160010160008282546113179190612ab6565b90915550508054829082906000906113309084906129ce565b9091555050600e546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b09190612a6a565b50600e54600f5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015611406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142a9190612a6a565b50600f5460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561147157600080fd5b505af1158015611485573d6000803e3d6000fd5b50506040518481528592503391507fb2b57d77f3386e7108afb8ee9a58008631e884cb4ff8cc775d3d5b6c77a44262906020015b60405180910390a3505050565b6000806114d283611a38565b905061069681600b54611b36565b6040516331a9108f60e11b815260048101829052819033903090636352211e90602401602060405180830381865afa158015611520573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611544919061294d565b6001600160a01b03161461156a5760405162461bcd60e51b81526004016107c99061296a565b6111aa826000611b36565b611581848484846116b5565b60018111156115f05760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016107c9565b816001600160a01b03851661164c5761164781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61166f565b836001600160a01b0316856001600160a01b03161461166f5761166f8582611f6c565b6001600160a01b03841661168b5761168681612009565b6116ae565b846001600160a01b0316846001600160a01b0316146116ae576116ae84826120b8565b5050505050565b600181111561122a576001600160a01b038416156116fb576001600160a01b038416600090815260036020526040812080548392906116f59084906129ce565b90915550505b6001600160a01b0383161561122a576001600160a01b03831660009081526003602052604081208054839290611732908490612a41565b909155505050505050565b60006001600160e01b0319821663780e9d6360e01b14806106965750610696826120fc565b6000818152600260205260409020546001600160a01b03166109eb5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016107c9565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117f682610e76565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061183b83610e76565b600f549091506001600160a01b038581169116148061186b5750806001600160a01b0316846001600160a01b0316145b8061189b57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806118bf5750836001600160a01b03166118b48461072e565b6001600160a01b0316145b949350505050565b826001600160a01b03166118da82610e76565b6001600160a01b0316146119005760405162461bcd60e51b81526004016107c990612ade565b6001600160a01b0382166119625760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016107c9565b61196f838383600161214c565b826001600160a01b031661198282610e76565b6001600160a01b0316146119a85760405162461bcd60e51b81526004016107c990612ade565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a5461012c611a4760085490565b10611a895760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b60448201526064016107c9565b611a938282612158565b6001600a6000828254611aa69190612a41565b9091555050600081815260106020526040902060085461012c600c54611acc9190612a41565b611ad691906129ce565b611ae1906001612a41565b60028201819055600c541115611afa576002810154600c555b60405182906001600160a01b038516907ff2b290a76feb54be358b555507421d765609171aefa0646f109a653228ff81b890600090a350919050565b60003411611b955760405162461bcd60e51b815260206004820152602660248201527f596f75206e65656420746f2073656e6420736f6d652045544820746f206d696e6044820152651d08191e585960d21b60648201526084016107c9565b600f54604051633ee440f360e21b8152600481018390526000916001600160a01b03169063fb9103cc90349060240160206040518083038185885af1158015611be2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c07919061299f565b600e54600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015611c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c829190612a6a565b50600f5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611cc957600080fd5b505af1158015611cdd573d6000803e3d6000fd5b50505060008481526010602052604081206001018054849350909190611d04908490612ab6565b9091555050604051818152839033907f3a7ec3c4655340144c5d88cd1e88cf7146e64e9a6d3db1b306f130db3579fdb4906020016114b9565b6000611d4882610e76565b9050611d5881600084600161214c565b611d6182610e76565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b031603611e415760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016107c9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016114b9565b611eb18484846118c7565b611ebd848484846122f1565b61122a5760405162461bcd60e51b81526004016107c990612b23565b60606000611ee6836123f2565b600101905060008167ffffffffffffffff811115611f0657611f066125fb565b6040519080825280601f01601f191660200182016040528015611f30576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f3a57509392505050565b60006001611f7984610ed6565b611f8391906129ce565b600083815260076020526040902054909150808214611fd6576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061201b906001906129ce565b6000838152600960205260408120546008805493945090928490811061204357612043612a54565b90600052602060002001549050806008838154811061206457612064612a54565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061209c5761209c612b75565b6001900381819060005260206000200160009055905550505050565b60006120c383610ed6565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160e01b031982166380ac58cd60e01b148061212d57506001600160e01b03198216635b5e139f60e01b145b8061069657506301ffc9a760e01b6001600160e01b0319831614610696565b61122a84848484611575565b6001600160a01b0382166121ae5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016107c9565b6000818152600260205260409020546001600160a01b0316156122135760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016107c9565b61222160008383600161214c565b6000818152600260205260409020546001600160a01b0316156122865760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016107c9565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b156123e757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612335903390899088908890600401612b8b565b6020604051808303816000875af1925050508015612370575060408051601f3d908101601f1916820190925261236d91810190612bc8565b60015b6123cd573d80801561239e576040519150601f19603f3d011682016040523d82523d6000602084013e6123a3565b606091505b5080516000036123c55760405162461bcd60e51b81526004016107c990612b23565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118bf565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106124315772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061245d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061247b57662386f26fc10000830492506010015b6305f5e1008310612493576305f5e100830492506008015b61271083106124a757612710830492506004015b606483106124b9576064830492506002015b600a83106106965760010192915050565b6001600160e01b0319811681146109eb57600080fd5b6000602082840312156124f257600080fd5b813561129d816124ca565b60005b83811015612518578181015183820152602001612500565b50506000910152565b600081518084526125398160208601602086016124fd565b601f01601f19169290920160200192915050565b60208152600061129d6020830184612521565b60006020828403121561257257600080fd5b5035919050565b6001600160a01b03811681146109eb57600080fd5b600080604083850312156125a157600080fd5b82356125ac81612579565b946020939093013593505050565b6000806000606084860312156125cf57600080fd5b83356125da81612579565b925060208401356125ea81612579565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561263a5761263a6125fb565b604052919050565b60006060828403121561265457600080fd5b6040516060810181811067ffffffffffffffff82111715612677576126776125fb565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600060a084860312156126b357600080fd5b83356126be81612579565b92506126cd8560208601612642565b9150608084013590509250925092565b600080604083850312156126f057600080fd5b50508035926020909101359150565b60006020828403121561271157600080fd5b813561129d81612579565b6000806080838503121561272f57600080fd5b823591506127408460208501612642565b90509250929050565b80151581146109eb57600080fd5b6000806040838503121561276a57600080fd5b823561277581612579565b9150602083013561278581612749565b809150509250929050565b600080600080608085870312156127a657600080fd5b84356127b181612579565b93506020858101356127c281612579565b935060408601359250606086013567ffffffffffffffff808211156127e657600080fd5b818801915088601f8301126127fa57600080fd5b81358181111561280c5761280c6125fb565b61281e601f8201601f19168501612611565b9150808252898482850101111561283457600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806040838503121561286757600080fd5b823561287281612579565b9150602083013561278581612579565b600181811c9082168061289657607f821691505b6020821081036128b657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526024908201527f644e46543a204f6e6c792063616c6c61626c6520627920506f6f6c20636f6e746040820152631c9858dd60e21b606082015260800190565b60006020828403121561295f57600080fd5b815161129d81612579565b6020808252818101527f644e46543a204f6e6c792063616c6c61626c65206279204e4654206f776e6572604082015260600190565b6000602082840312156129b157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610696576106966129b8565b8082028115828204841417610696576106966129b8565b600082612a1557634e487b7160e01b600052601260045260246000fd5b500490565b8181036000831280158383131683831282161715612a3a57612a3a6129b8565b5092915050565b80820180821115610696576106966129b8565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a7c57600080fd5b815161129d81612749565b60008351612a998184602088016124fd565b835190830190612aad8183602088016124fd565b01949350505050565b8082018281126000831280158216821582161715612ad657612ad66129b8565b505092915050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612bbe90830184612521565b9695505050505050565b600060208284031215612bda57600080fd5b815161129d816124ca56fea264697066735822122064b775c914de91e4745e33e881e8b3cdf27f2b63ab21cb0fa1c1aa07604fa41c64736f6c63430008110033", - "sourceMap": "342:8319:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3520:183;;;;;;;;;;-1:-1:-1;3520:183:31;;;;;:::i;:::-;;:::i;:::-;;;565:14:41;;558:22;540:41;;528:2;513:18;3520:183:31;;;;;;;;2471:98:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;;;;;-1:-1:-1;3935:167:11;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:41;;;1679:51;;1667:2;1652:18;3935:167:11;1533:203:41;3468:406:11;;;;;;;;;;-1:-1:-1;3468:406:11;;;;;:::i;:::-;;:::i;:::-;;1298:16:31;;;;;;;;;;-1:-1:-1;1298:16:31;;;;-1:-1:-1;;;;;1298:16:31;;;1615:111:15;;;;;;;;;;-1:-1:-1;1702:10:15;:17;1615:111;;;2565:25:41;;;2553:2;2538:18;1615:111:15;2419:177:41;4612:326:11;;;;;;;;;;-1:-1:-1;4612:326:11;;;;;:::i;:::-;;:::i;1291:253:15:-;;;;;;;;;;-1:-1:-1;1291:253:15;;;;;:::i;:::-;;:::i;460:37:31:-;;;;;;;;;;;;494:3;460:37;;4901:548;;;;;;:::i;:::-;;:::i;5004:179:11:-;;;;;;;;;;-1:-1:-1;5004:179:11;;;;;:::i;:::-;;:::i;531:238:14:-;;;;;;;;;;-1:-1:-1;531:238:14;;;;;:::i;:::-;;:::i;7060:546:31:-;;;;;;;;;;-1:-1:-1;7060:546:31;;;;;:::i;:::-;;:::i;2911:170::-;;;;;;;;;;-1:-1:-1;2911:170:31;;;;;:::i;:::-;;:::i;3864:96::-;;;;;;;;;;-1:-1:-1;3864:96:31;;;;;:::i;:::-;;:::i;1356:41::-;;;;;;;;;;-1:-1:-1;1356:41:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:25:41;;;5498:2;5483:18;;5476:34;;;;5526:18;;;5519:34;5430:2;5415:18;1356:41:31;5242:317:41;1798:230:15;;;;;;;;;;-1:-1:-1;1798:230:15;;;;;:::i;:::-;;:::i;2190:219:11:-;;;;;;;;;;-1:-1:-1;2190:219:11;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;;;;;-1:-1:-1;1929:204:11;;;;;:::i;:::-;;:::i;8296:363:31:-;;;;;;;;;;-1:-1:-1;8296:363:31;;;;;:::i;:::-;;:::i;583:25::-;;;;;;;;;;;;;;;;2633:102:11;;;;;;;;;;;;;:::i;4169:153::-;;;;;;;;;;-1:-1:-1;4169:153:11;;;;;:::i;:::-;;:::i;1278:16:31:-;;;;;;;;;;-1:-1:-1;1278:16:31;;;;-1:-1:-1;;;;;1278:16:31;;;662:27;;;;;;;;;;;;;;;;3707:153;;;;;;;;;;-1:-1:-1;3707:153:31;;;;;:::i;:::-;;:::i;5249:314:11:-;;;;;;;;;;-1:-1:-1;5249:314:11;;;;;:::i;:::-;;:::i;502:52:31:-;;;;;;;;;;;;549:5;502:52;;2801:276:11;;;;;;;;;;-1:-1:-1;2801:276:11;;;;;:::i;:::-;;:::i;1073:27:31:-;;;;;;;;;;;;;;;;1233:40;;;;;;;;;;;;;;;;7647:620;;;;;;;;;;-1:-1:-1;7647:620:31;;;;;:::i;:::-;;:::i;4388:162:11:-;;;;;;;;;;-1:-1:-1;4388:162:11;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:11;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;4597:157:31;;;;;;:::i;:::-;;:::i;6578:86::-;;;;;;:::i;:::-;;:::i;3520:183::-;3647:4;3664:36;3688:11;3664:23;:36::i;:::-;3657:43;3520:183;-1:-1:-1;;3520:183:31:o;2471:98:11:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:11;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:11;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:11;:2;-1:-1:-1;;;;;3605:11:11;;3597:57;;;;-1:-1:-1;;;3597:57:11;;8389:2:41;3597:57:11;;;8371:21:41;8428:2;8408:18;;;8401:30;8467:34;8447:18;;;8440:62;-1:-1:-1;;;8518:18:41;;;8511:31;8559:19;;3597:57:11;;;;;;;;;719:10:19;-1:-1:-1;;;;;3686:21:11;;;;:62;;-1:-1:-1;3711:37:11;3728:5;719:10:19;4388:162:11;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:11;;8791:2:41;3665:170:11;;;8773:21:41;8830:2;8810:18;;;8803:30;8869:34;8849:18;;;8842:62;8940:31;8920:18;;;8913:59;8989:19;;3665:170:11;8589:425:41;3665:170:11;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;719:10:19;4820:12:11;4834:7;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:11;;;;;;;:::i;:::-;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;1291:253:15:-;1388:7;1423:23;1440:5;1423:16;:23::i;:::-;1415:5;:31;1407:87;;;;-1:-1:-1;;;1407:87:15;;9635:2:41;1407:87:15;;;9617:21:41;9674:2;9654:18;;;9647:30;9713:34;9693:18;;;9686:62;-1:-1:-1;;;9764:18:41;;;9757:41;9815:19;;1407:87:15;9433:407:41;1407:87:15;-1:-1:-1;;;;;;1511:19:15;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;1291:253::o;4901:548:31:-;1925:4;;5064;;-1:-1:-1;;;;;1925:4:31;1934:10;1917:27;1909:76;;;;-1:-1:-1;;;1909:76:31;;;;;;;:::i;:::-;5076:7:::1;5086:18;5095:8;5086;:18::i;:::-;5110:24;5137:11:::0;;;:7:::1;:11;::::0;;;;;;5247:6;;::::1;::::0;5228:9:::1;::::0;::::1;:25:::0;5278:13;;5259:32;;5076:28;;-1:-1:-1;5399:29:31::1;5076:28:::0;5413:14;5399:9:::1;:29::i;:::-;-1:-1:-1::0;5442:2:31;4901:548;-1:-1:-1;;;;4901:548:31:o;5004:179:11:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;531:238:14:-;647:41;719:10:19;666:12:14;640:96:19;647:41:14;639:99;;;;-1:-1:-1;;;639:99:14;;;;;;;:::i;:::-;748:14;754:7;748:5;:14::i;:::-;531:238;:::o;7060:546:31:-;1800:16;;-1:-1:-1;;;1800:16:31;;;;;2565:25:41;;;7122:2:31;;1820:10;;1800:4;;:12;;2538:18:41;;1800:16:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1800:30:31;;1792:75;;;;-1:-1:-1;;;1792:75:31;;;;;;;:::i;:::-;7155:4:::1;::::0;7178::::1;::::0;7155:29:::1;::::0;-1:-1:-1;;;7155:29:31;;-1:-1:-1;;;;;7178:4:31;;::::1;7155:29;::::0;::::1;1679:51:41::0;7132:20:31::1;::::0;7155:4;;;::::1;::::0;:14:::1;::::0;1652:18:41;;7155:29:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7132:52;;7190:7;7249:15;7222;7201:4;;;;;;;;;-1:-1:-1::0;;;;;7201:4:31::1;-1:-1:-1::0;;;;;7201:16:31::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;;;;:::i;:::-;7200:46;::::0;7241:5:::1;7200:46;:::i;:::-;:64;;;;:::i;:::-;7190:74;;549:5;7278:2;:28;7270:56;;;::::0;-1:-1:-1;;;7270:56:31;;12050:2:41;7270:56:31::1;::::0;::::1;12032:21:41::0;12089:2;12069:18;;;12062:30;-1:-1:-1;;;12108:18:41;;;12101:45;12163:18;;7270:56:31::1;11848:339:41::0;7270:56:31::1;7334:21;7358:11:::0;;;:7:::1;:11;::::0;;;;7398::::1;::::0;::::1;::::0;7383:26;::::1;;7375:76;;;::::0;-1:-1:-1;;;7375:76:31;;12394:2:41;7375:76:31::1;::::0;::::1;12376:21:41::0;12433:2;12413:18;;;12406:30;12472:34;12452:18;;;12445:62;-1:-1:-1;;;12523:18:41;;;12516:35;12568:19;;7375:76:31::1;12192:401:41::0;7375:76:31::1;7478:6;7457:3;:11;;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7491:23:31;;7508:6;;7491:3;;:13:::1;::::0;:23:::1;::::0;7508:6;;7491:23:::1;:::i;:::-;::::0;;;-1:-1:-1;;7520:4:31::1;::::0;:33:::1;::::0;-1:-1:-1;;;7520:33:31;;7534:10:::1;7520:33;::::0;::::1;13107:51:41::0;13174:18;;;13167:34;;;-1:-1:-1;;;;;7520:4:31;;::::1;::::0;:13:::1;::::0;13080:18:41;;7520:33:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7564:37:31::1;::::0;2565:25:41;;;7590:2:31;;-1:-1:-1;7578:10:31::1;::::0;-1:-1:-1;7564:37:31::1;::::0;2553:2:41;2538:18;7564:37:31::1;;;;;;;7126:480;;;7060:546:::0;;;:::o;2911:170::-;3002:4;;-1:-1:-1;;;;;3002:4:31;2994:27;2986:64;;;;-1:-1:-1;;;2986:64:31;;13414:2:41;2986:64:31;;;13396:21:41;13453:2;13433:18;;;13426:30;13492:27;13472:18;;;13465:55;13537:18;;2986:64:31;13212:349:41;2986:64:31;3056:4;:20;;-1:-1:-1;;;;;;3056:20:31;-1:-1:-1;;;;;3056:20:31;;;;;;;;;;2911:170::o;3864:96::-;1925:4;;-1:-1:-1;;;;;1925:4:31;1934:10;1917:27;1909:76;;;;-1:-1:-1;;;1909:76:31;;;;;;;:::i;:::-;3938:11:::1;::::0;;;:7:::1;:11;::::0;;;;;;;;:17;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;3864:96::o;1798:230:15:-;1873:7;1908:30;1702:10;:17;;1615:111;1908:30;1900:5;:38;1892:95;;;;-1:-1:-1;;;1892:95:15;;13768:2:41;1892:95:15;;;13750:21:41;13807:2;13787:18;;;13780:30;13846:34;13826:18;;;13819:62;-1:-1:-1;;;13897:18:41;;;13890:42;13949:19;;1892:95:15;13566:408:41;1892:95:15;2004:10;2015:5;2004:17;;;;;;;;:::i;:::-;;;;;;;;;1997:24;;1798:230;;;:::o;2190:219:11:-;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:11;;2324:56;;;;-1:-1:-1;;;2324:56:11;;14313:2:41;2324:56:11;;;14295:21:41;14352:2;14332:18;;;14325:30;-1:-1:-1;;;14371:18:41;;;14364:54;14435:18;;2324:56:11;14111:348:41;1929:204:11;2001:7;-1:-1:-1;;;;;2028:19:11;;2020:73;;;;-1:-1:-1;;;2020:73:11;;14666:2:41;2020:73:11;;;14648:21:41;14705:2;14685:18;;;14678:30;14744:34;14724:18;;;14717:62;-1:-1:-1;;;14795:18:41;;;14788:39;14844:19;;2020:73:11;14464:405:41;2020:73:11;-1:-1:-1;;;;;;2110:16:11;;;;;:9;:16;;;;;;;1929:204::o;8296:363:31:-;1800:16;;-1:-1:-1;;;1800:16:31;;;;;2565:25:41;;;8356:2:31;;1820:10;;1800:4;;:12;;2538:18:41;;1800:16:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1800:30:31;;1792:75;;;;-1:-1:-1;;;1792:75:31;;;;;;;:::i;:::-;8366:21:::1;8390:11:::0;;;:7:::1;:11;::::0;;;;8425:13;;8415:23;::::1;;8407:76;;;::::0;-1:-1:-1;;;8407:76:31;;15076:2:41;8407:76:31::1;::::0;::::1;15058:21:41::0;15115:2;15095:18;;;15088:30;15154:34;15134:18;;;15127:62;-1:-1:-1;;;15205:18:41;;;15198:38;15253:19;;8407:76:31::1;14874:404:41::0;8407:76:31::1;8506:6;8489:3;:13;;;:23;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8518:4:31::1;::::0;8556::::1;::::0;8518:52:::1;::::0;-1:-1:-1;;;8518:52:31;;8536:10:::1;8518:52;::::0;::::1;15523:34:41::0;-1:-1:-1;;;;;8556:4:31;;::::1;15573:18:41::0;;;15566:43;15625:18;;;15618:34;;;8518:4:31;::::1;::::0;:17:::1;::::0;15458:18:41;;8518:52:31::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8576:4:31::1;::::0;:31:::1;::::0;-1:-1:-1;;;8576:31:31;;8588:10:::1;8576:31;::::0;::::1;13107:51:41::0;13174:18;;;13167:34;;;-1:-1:-1;;;;;8576:4:31;;::::1;::::0;:11:::1;::::0;13080:18:41;;8576:31:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8618:36:31::1;::::0;2565:25:41;;;8643:2:31;;-1:-1:-1;8631:10:31::1;::::0;-1:-1:-1;8618:36:31::1;::::0;2553:2:41;2538:18;8618:36:31::1;;;;;;;8360:299;8296:363:::0;;;:::o;2633:102:11:-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;719:10:19;4296:8:11;4306;4263:18;:52::i;:::-;4169:153;;:::o;3707::31:-;1925:4;;-1:-1:-1;;;;;1925:4:31;1934:10;1917:27;1909:76;;;;-1:-1:-1;;;1909:76:31;;;;;;;:::i;:::-;3785:6:::1;;3777:5;:14;3773:39;;;3795:6;:14:::0;;;3773:39:::1;3829:6;;3821:5;:14;3817:39;;;3839:6;:14:::0;-1:-1:-1;3707:153:31:o;5249:314:11:-;5417:41;719:10:19;5450:7:11;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:11;;;;;;;:::i;:::-;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;3395:9;;;;;;;;;-1:-1:-1;3395:9:11;;;3319:92;2957:10;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;2801:276;-1:-1:-1;;;2801:276:11:o;7647:620:31:-;7701:21;7725:11;;;:7;:11;;;;;7851:13;;7841:23;;;7833:67;;;;-1:-1:-1;;;7833:67:31;;16616:2:41;7833:67:31;;;16598:21:41;16655:2;16635:18;;;16628:30;16694:33;16674:18;;;16667:61;16745:18;;7833:67:31;16414:355:41;7833:67:31;7928:6;7907:3;:11;;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;7941:23:31;;7958:6;;7941:3;;:13;;:23;;7958:6;;7941:23;:::i;:::-;;;;-1:-1:-1;;8094:4:31;;:52;;-1:-1:-1;;;8094:52:31;;8112:10;8094:52;;;15523:34:41;8132:4:31;15573:18:41;;;15566:43;15625:18;;;15618:34;;;-1:-1:-1;;;;;8094:4:31;;;;:17;;15458:18:41;;8094:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8152:4:31;;8173;;8152:35;;-1:-1:-1;;;8152:35:31;;-1:-1:-1;;;;;8173:4:31;;;8152:35;;;13107:51:41;13174:18;;;13167:34;;;8152:4:31;;;:12;;13080:18:41;;8152:35:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8193:4:31;;:20;;-1:-1:-1;;;8193:20:31;;;;;2565:25:41;;;-1:-1:-1;;;;;8193:4:31;;;;:12;;2538:18:41;;8193:20:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8225:37:31;;2565:25:41;;;8251:2:31;;-1:-1:-1;8239:10:31;;-1:-1:-1;8225:37:31;;2553:2:41;2538:18;8225:37:31;;;;;;;;7695:572;7647:620;;:::o;4597:157::-;4658:4;4670:7;4680:18;4689:8;4680;:18::i;:::-;4670:28;;4704:30;4714:2;4718:15;;4704:9;:30::i;6578:86::-;1800:16;;-1:-1:-1;;;1800:16:31;;;;;2565:25:41;;;6633:2:31;;1820:10;;1800:4;;:12;;2538:18:41;;1800:16:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1800:30:31;;1792:75;;;;-1:-1:-1;;;1792:75:31;;;;;;;:::i;:::-;6643:16:::1;6653:2;6657:1;6643:9;:16::i;2097:890:15:-:0;2268:61;2295:4;2301:2;2305:12;2319:9;2268:26;:61::i;:::-;2356:1;2344:9;:13;2340:219;;;2485:63;;-1:-1:-1;;;2485:63:15;;17197:2:41;2485:63:15;;;17179:21:41;17236:2;17216:18;;;17209:30;17275:34;17255:18;;;17248:62;-1:-1:-1;;;17326:18:41;;;17319:51;17387:19;;2485:63:15;16995:417:41;2340:219:15;2587:12;-1:-1:-1;;;;;2614:18:15;;2610:183;;2648:40;2680:7;3796:10;:17;;3769:24;;;;:15;:24;;;;;:44;;;3823:24;;;;;;;;;;;;3693:161;2648:40;2610:183;;;2717:2;-1:-1:-1;;;;;2709:10:15;:4;-1:-1:-1;;;;;2709:10:15;;2705:88;;2735:47;2768:4;2774:7;2735:32;:47::i;:::-;-1:-1:-1;;;;;2806:16:15;;2802:179;;2838:45;2875:7;2838:36;:45::i;:::-;2802:179;;;2910:4;-1:-1:-1;;;;;2904:10:15;:2;-1:-1:-1;;;;;2904:10:15;;2900:81;;2930:40;2958:2;2962:7;2930:27;:40::i;:::-;2258:729;2097:890;;;;:::o;15698:396:11:-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:11;;;15899:85;;-1:-1:-1;;;;;15941:15:11;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:11;-1:-1:-1;;;;;16001:16:11;;;15997:81;;-1:-1:-1;;;;;16037:13:11;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:11;;;;:::o;990:222:15:-;1092:4;-1:-1:-1;;;;;;1115:50:15;;-1:-1:-1;;;1115:50:15;;:90;;;1169:36;1193:11;1169:23;:36::i;13466:133:11:-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:11;13539:53;;;;-1:-1:-1;;;13539:53:11;;14313:2:41;13539:53:11;;;14295:21:41;14352:2;14332:18;;;14325:30;-1:-1:-1;;;14371:18:41;;;14364:54;14435:18;;13539:53:11;14111:348:41;12768:171:11;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12842:29:11;-1:-1:-1;;;;;12842:29:11;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:11;;;;;;;;;;;12768:171;;:::o;4092:403:31:-;4255:4;4267:13;4283:23;4298:7;4283:14;:23::i;:::-;4339:4;;4267:39;;-1:-1:-1;;;;;;4320:24:31;;;4339:4;;4320:24;;:74;;;4389:5;-1:-1:-1;;;;;4378:16:31;:7;-1:-1:-1;;;;;4378:16:31;;4320:74;:122;;;-1:-1:-1;;;;;;4508:25:11;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;4410:32:31;4320:169;;;;4482:7;-1:-1:-1;;;;;4458:31:31;:20;4470:7;4458:11;:20::i;:::-;-1:-1:-1;;;;;4458:31:31;;4320:169;4312:178;4092:403;-1:-1:-1;;;;4092:403:31:o;11423:1233:11:-;11577:4;-1:-1:-1;;;;;11550:31:11;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:11;;11542:81;;;;-1:-1:-1;;;11542:81:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;11641:16:11;;11633:65;;;;-1:-1:-1;;;11633:65:11;;18025:2:41;11633:65:11;;;18007:21:41;18064:2;18044:18;;;18037:30;18103:34;18083:18;;;18076:62;-1:-1:-1;;;18154:18:41;;;18147:34;18198:19;;11633:65:11;17823:400:41;11633:65:11;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:11;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:11;;11843:81;;;;-1:-1:-1;;;11843:81:11;;;;;;;:::i;:::-;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;;;;;11986:31:11;;;;;;-1:-1:-1;;;;;12461:15:11;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:11;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;3538:336;3468:406;;:::o;5669:859:31:-;5920:13;;494:3;5947:13;1702:10:15;:17;;1615:111;5947:13:31;:26;5939:57;;;;-1:-1:-1;;;5939:57:31;;18430:2:41;5939:57:31;;;18412:21:41;18469:2;18449:18;;;18442:30;-1:-1:-1;;;18488:18:41;;;18481:48;18546:18;;5939:57:31;18228:342:41;5939:57:31;6002:19;6008:8;6018:2;6002:5;:19::i;:::-;6045:1;6028:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;6053:21:31;6077:11;;;:7;:11;;;;;1702:10:15;:17;494:3:31;6346:6;;:19;;;;:::i;:::-;:33;;;;:::i;:::-;:35;;6380:1;6346:35;:::i;:::-;6337:6;;;:44;;;6462:6;;-1:-1:-1;6449:41:31;;;6481:6;;;;6472;:15;6449:41;6500:23;;6520:2;;-1:-1:-1;;;;;6500:23:31;;;;;;;;5731:797;5669:859;;;:::o;6668:341::-;6746:1;6734:9;:13;6726:64;;;;-1:-1:-1;;;6726:64:31;;18777:2:41;6726:64:31;;;18759:21:41;18816:2;18796:18;;;18789:30;18855:34;18835:18;;;18828:62;-1:-1:-1;;;18906:18:41;;;18899:36;18952:19;;6726:64:31;18575:402:41;6726:64:31;6810:4;;:42;;-1:-1:-1;;;6810:42:31;;;;;2565:25:41;;;6796:11:31;;-1:-1:-1;;;;;6810:4:31;;:13;;6831:9;;2538:18:41;;6810:42:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6858:4;;6879;;6858:35;;-1:-1:-1;;;6858:35:31;;-1:-1:-1;;;;;6879:4:31;;;6858:35;;;13107:51:41;13174:18;;;13167:34;;;6796:56:31;;-1:-1:-1;6858:4:31;;:12;;13080:18:41;;6858:35:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6899:4:31;;:20;;-1:-1:-1;;;6899:20:31;;;;;2565:25:41;;;-1:-1:-1;;;;;6899:4:31;;;;:12;;2538:18:41;;6899:20:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6925:11:31;;;;:7;:11;;;;;:19;;:34;;6952:6;;-1:-1:-1;6925:19:31;;:11;:34;;6952:6;;6925:34;:::i;:::-;;;;-1:-1:-1;;6970:34:31;;2565:25:41;;;6993:2:31;;6981:10;;6970:34;;2553:2:41;2538:18;6970:34:31;2419:177:41;10337:762:11;10396:13;10412:23;10427:7;10412:14;:23::i;:::-;10396:39;;10446:51;10467:5;10482:1;10486:7;10495:1;10446:20;:51::i;:::-;10607:23;10622:7;10607:14;:23::i;:::-;10675:24;;;;:15;:24;;;;;;;;10668:31;;-1:-1:-1;;;;;;10668:31:11;;;;;;-1:-1:-1;;;;;10915:16:11;;;;;:9;:16;;;;;:21;;-1:-1:-1;;10915:21:11;;;10963:16;;;:7;:16;;;;;;10956:23;;;;;;;10995:36;10599:31;;-1:-1:-1;10691:7:11;;10995:36;;10675:24;;10995:36;4169:153;;:::o;13075:307::-;13225:8;-1:-1:-1;;;;;13216:17:11;:5;-1:-1:-1;;;;;13216:17:11;;13208:55;;;;-1:-1:-1;;;13208:55:11;;19184:2:41;13208:55:11;;;19166:21:41;19223:2;19203:18;;;19196:30;19262:27;19242:18;;;19235:55;19307:18;;13208:55:11;18982:349:41;13208:55:11;-1:-1:-1;;;;;13273:25:11;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:11;;;;;;;;;;13334:41;;540::41;;;13334::11;;513:18:41;13334:41:11;400:187:41;6424:305:11;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;-1:-1:-1;;;6612:110:11;;;;;;;:::i;415:696:20:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:20;-1:-1:-1;572:41:20;-1:-1:-1;733:28:20;;;749:2;733:28;788:280;-1:-1:-1;;819:5:20;-1:-1:-1;;;953:2:20;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:20;788:280;1032:21;-1:-1:-1;1088:6:20;415:696;-1:-1:-1;;;415:696:20:o;4471:970:15:-;4733:22;4783:1;4758:22;4775:4;4758:16;:22::i;:::-;:26;;;;:::i;:::-;4794:18;4815:26;;;:17;:26;;;;;;4733:51;;-1:-1:-1;4945:28:15;;;4941:323;;-1:-1:-1;;;;;5011:18:15;;4989:19;5011:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5060:30;;;;;;:44;;;5176:30;;:17;:30;;;;;:43;;;4941:323;-1:-1:-1;5357:26:15;;;;:17;:26;;;;;;;;5350:33;;;-1:-1:-1;;;;;5400:18:15;;;;;:12;:18;;;;;:34;;;;;;;5393:41;4471:970::o;5729:1061::-;6003:10;:17;5978:22;;6003:21;;6023:1;;6003:21;:::i;:::-;6034:18;6055:24;;;:15;:24;;;;;;6423:10;:26;;5978:46;;-1:-1:-1;6055:24:15;;5978:46;;6423:26;;;;;;:::i;:::-;;;;;;;;;6401:48;;6485:11;6460:10;6471;6460:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6564:28;;;:15;:28;;;;;;;:41;;;6733:24;;;;;6726:31;6767:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5800:990;;;5729:1061;:::o;3281:217::-;3365:14;3382:20;3399:2;3382:16;:20::i;:::-;-1:-1:-1;;;;;3412:16:15;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3456:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3281:217:15:o;1570:300:11:-;1672:4;-1:-1:-1;;;;;;1707:40:11;;-1:-1:-1;;;1707:40:11;;:104;;-1:-1:-1;;;;;;;1763:48:11;;-1:-1:-1;;;1763:48:11;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:21;;;1827:36:11;829:155:21;3150:301:31;3392:56;3419:4;3425:2;3429:7;3438:9;3392:26;:56::i;9091:920:11:-;-1:-1:-1;;;;;9170:16:11;;9162:61;;;;-1:-1:-1;;;9162:61:11;;20089:2:41;9162:61:11;;;20071:21:41;;;20108:18;;;20101:30;20167:34;20147:18;;;20140:62;20219:18;;9162:61:11;19887:356:41;9162:61:11;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:11;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:11;;20450:2:41;9233:58:11;;;20432:21:41;20489:2;20469:18;;;20462:30;20528;20508:18;;;20501:58;20576:18;;9233:58:11;20248:352:41;9233:58:11;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:11;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:11;;20450:2:41;9437:58:11;;;20432:21:41;20489:2;20469:18;;;20462:30;20528;20508:18;;;20501:58;20576:18;;9437:58:11;20248:352:41;9437:58:11;-1:-1:-1;;;;;9837:13:11;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:11;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;4169:153;;:::o;14151:831::-;14300:4;-1:-1:-1;;;;;14320:13:11;;1465:19:18;:23;14316:660:11;;14355:71;;-1:-1:-1;;;14355:71:11;;-1:-1:-1;;;;;14355:36:11;;;;;:71;;719:10:19;;14406:4:11;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:11;;;;;;;;-1:-1:-1;;14355:71:11;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:11;;;;;;;:::i;14589:321::-;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:11;-1:-1:-1;;;14476:51:11;;-1:-1:-1;14469:58:11;;14316:660;-1:-1:-1;14961:4:11;14151:831;;;;;;:::o;9889:890:23:-;9942:7;;-1:-1:-1;;;10017:15:23;;10013:99;;-1:-1:-1;;;10052:15:23;;;-1:-1:-1;10095:2:23;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:23;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:23;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:23;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:23;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:23;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:23:o;14:131:41:-;-1:-1:-1;;;;;;88:32:41;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:41;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:41;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:41:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:41;;1348:180;-1:-1:-1;1348:180:41:o;1741:131::-;-1:-1:-1;;;;;1816:31:41;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:41:o;2601:456::-;2678:6;2686;2694;2747:2;2735:9;2726:7;2722:23;2718:32;2715:52;;;2763:1;2760;2753:12;2715:52;2802:9;2789:23;2821:31;2846:5;2821:31;:::i;:::-;2871:5;-1:-1:-1;2928:2:41;2913:18;;2900:32;2941:33;2900:32;2941:33;:::i;:::-;2601:456;;2993:7;;-1:-1:-1;;;3047:2:41;3032:18;;;;3019:32;;2601:456::o;3062:127::-;3123:10;3118:3;3114:20;3111:1;3104:31;3154:4;3151:1;3144:15;3178:4;3175:1;3168:15;3194:275;3265:2;3259:9;3330:2;3311:13;;-1:-1:-1;;3307:27:41;3295:40;;3365:18;3350:34;;3386:22;;;3347:62;3344:88;;;3412:18;;:::i;:::-;3448:2;3441:22;3194:275;;-1:-1:-1;3194:275:41:o;3474:534::-;3524:5;3572:4;3560:9;3555:3;3551:19;3547:30;3544:50;;;3590:1;3587;3580:12;3544:50;3623:2;3617:9;3665:4;3657:6;3653:17;3736:6;3724:10;3721:22;3700:18;3688:10;3685:34;3682:62;3679:88;;;3747:18;;:::i;:::-;3787:10;3783:2;3776:22;;3816:6;3807:15;;3859:9;3846:23;3838:6;3831:39;3931:2;3920:9;3916:18;3903:32;3898:2;3890:6;3886:15;3879:57;3997:2;3986:9;3982:18;3969:32;3964:2;3956:6;3952:15;3945:57;;3474:534;;;;:::o;4013:425::-;4112:6;4120;4128;4181:3;4169:9;4160:7;4156:23;4152:33;4149:53;;;4198:1;4195;4188:12;4149:53;4237:9;4224:23;4256:31;4281:5;4256:31;:::i;:::-;4306:5;-1:-1:-1;4330:50:41;4372:7;4367:2;4352:18;;4330:50;:::i;:::-;4320:60;;4427:3;4416:9;4412:19;4399:33;4389:43;;4013:425;;;;;:::o;4443:248::-;4511:6;4519;4572:2;4560:9;4551:7;4547:23;4543:32;4540:52;;;4588:1;4585;4578:12;4540:52;-1:-1:-1;;4611:23:41;;;4681:2;4666:18;;;4653:32;;-1:-1:-1;4443:248:41:o;4696:247::-;4755:6;4808:2;4796:9;4787:7;4783:23;4779:32;4776:52;;;4824:1;4821;4814:12;4776:52;4863:9;4850:23;4882:31;4907:5;4882:31;:::i;4948:289::-;5038:6;5046;5099:3;5087:9;5078:7;5074:23;5070:33;5067:53;;;5116:1;5113;5106:12;5067:53;5152:9;5139:23;5129:33;;5181:50;5223:7;5218:2;5207:9;5203:18;5181:50;:::i;:::-;5171:60;;4948:289;;;;;:::o;5564:118::-;5650:5;5643:13;5636:21;5629:5;5626:32;5616:60;;5672:1;5669;5662:12;5687:382;5752:6;5760;5813:2;5801:9;5792:7;5788:23;5784:32;5781:52;;;5829:1;5826;5819:12;5781:52;5868:9;5855:23;5887:31;5912:5;5887:31;:::i;:::-;5937:5;-1:-1:-1;5994:2:41;5979:18;;5966:32;6007:30;5966:32;6007:30;:::i;:::-;6056:7;6046:17;;;5687:382;;;;;:::o;6296:1108::-;6391:6;6399;6407;6415;6468:3;6456:9;6447:7;6443:23;6439:33;6436:53;;;6485:1;6482;6475:12;6436:53;6524:9;6511:23;6543:31;6568:5;6543:31;:::i;:::-;6593:5;-1:-1:-1;6617:2:41;6656:18;;;6643:32;6684:33;6643:32;6684:33;:::i;:::-;6736:7;-1:-1:-1;6790:2:41;6775:18;;6762:32;;-1:-1:-1;6845:2:41;6830:18;;6817:32;6868:18;6898:14;;;6895:34;;;6925:1;6922;6915:12;6895:34;6963:6;6952:9;6948:22;6938:32;;7008:7;7001:4;6997:2;6993:13;6989:27;6979:55;;7030:1;7027;7020:12;6979:55;7066:2;7053:16;7088:2;7084;7081:10;7078:36;;;7094:18;;:::i;:::-;7136:53;7179:2;7160:13;;-1:-1:-1;;7156:27:41;7152:36;;7136:53;:::i;:::-;7123:66;;7212:2;7205:5;7198:17;7252:7;7247:2;7242;7238;7234:11;7230:20;7227:33;7224:53;;;7273:1;7270;7263:12;7224:53;7328:2;7323;7319;7315:11;7310:2;7303:5;7299:14;7286:45;7372:1;7367:2;7362;7355:5;7351:14;7347:23;7340:34;;7393:5;7383:15;;;;;6296:1108;;;;;;;:::o;7409:388::-;7477:6;7485;7538:2;7526:9;7517:7;7513:23;7509:32;7506:52;;;7554:1;7551;7544:12;7506:52;7593:9;7580:23;7612:31;7637:5;7612:31;:::i;:::-;7662:5;-1:-1:-1;7719:2:41;7704:18;;7691:32;7732:33;7691:32;7732:33;:::i;7802:380::-;7881:1;7877:12;;;;7924;;;7945:61;;7999:4;7991:6;7987:17;7977:27;;7945:61;8052:2;8044:6;8041:14;8021:18;8018:38;8015:161;;8098:10;8093:3;8089:20;8086:1;8079:31;8133:4;8130:1;8123:15;8161:4;8158:1;8151:15;8015:161;;7802:380;;;:::o;9019:409::-;9221:2;9203:21;;;9260:2;9240:18;;;9233:30;9299:34;9294:2;9279:18;;9272:62;-1:-1:-1;;;9365:2:41;9350:18;;9343:43;9418:3;9403:19;;9019:409::o;9845:400::-;10047:2;10029:21;;;10086:2;10066:18;;;10059:30;10125:34;10120:2;10105:18;;10098:62;-1:-1:-1;;;10191:2:41;10176:18;;10169:34;10235:3;10220:19;;9845:400::o;10250:251::-;10320:6;10373:2;10361:9;10352:7;10348:23;10344:32;10341:52;;;10389:1;10386;10379:12;10341:52;10421:9;10415:16;10440:31;10465:5;10440:31;:::i;10506:356::-;10708:2;10690:21;;;10727:18;;;10720:30;10786:34;10781:2;10766:18;;10759:62;10853:2;10838:18;;10506:356::o;10867:184::-;10937:6;10990:2;10978:9;10969:7;10965:23;10961:32;10958:52;;;11006:1;11003;10996:12;10958:52;-1:-1:-1;11029:16:41;;10867:184;-1:-1:-1;10867:184:41:o;11056:127::-;11117:10;11112:3;11108:20;11105:1;11098:31;11148:4;11145:1;11138:15;11172:4;11169:1;11162:15;11188:128;11255:9;;;11276:11;;;11273:37;;;11290:18;;:::i;11321:168::-;11394:9;;;11425;;11442:15;;;11436:22;;11422:37;11412:71;;11463:18;;:::i;11626:217::-;11666:1;11692;11682:132;;11736:10;11731:3;11727:20;11724:1;11717:31;11771:4;11768:1;11761:15;11799:4;11796:1;11789:15;11682:132;-1:-1:-1;11828:9:41;;11626:217::o;12598:200::-;12664:9;;;12637:4;12692:9;;12720:10;;12732:12;;;12716:29;12755:12;;;12747:21;;12713:56;12710:82;;;12772:18;;:::i;:::-;12710:82;12598:200;;;;:::o;12803:125::-;12868:9;;;12889:10;;;12886:36;;;12902:18;;:::i;13979:127::-;14040:10;14035:3;14031:20;14028:1;14021:31;14071:4;14068:1;14061:15;14095:4;14092:1;14085:15;15663:245;15730:6;15783:2;15771:9;15762:7;15758:23;15754:32;15751:52;;;15799:1;15796;15789:12;15751:52;15831:9;15825:16;15850:28;15872:5;15850:28;:::i;15913:496::-;16092:3;16130:6;16124:13;16146:66;16205:6;16200:3;16193:4;16185:6;16181:17;16146:66;:::i;:::-;16275:13;;16234:16;;;;16297:70;16275:13;16234:16;16344:4;16332:17;;16297:70;:::i;:::-;16383:20;;15913:496;-1:-1:-1;;;;15913:496:41:o;16774:216::-;16838:9;;;16866:11;;;16813:3;16896:9;;16924:10;;16920:19;;16949:10;;16941:19;;16917:44;16914:70;;;16964:18;;:::i;:::-;16914:70;;16774:216;;;;:::o;17417:401::-;17619:2;17601:21;;;17658:2;17638:18;;;17631:30;17697:34;17692:2;17677:18;;17670:62;-1:-1:-1;;;17763:2:41;17748:18;;17741:35;17808:3;17793:19;;17417:401::o;19336:414::-;19538:2;19520:21;;;19577:2;19557:18;;;19550:30;19616:34;19611:2;19596:18;;19589:62;-1:-1:-1;;;19682:2:41;19667:18;;19660:48;19740:3;19725:19;;19336:414::o;19755:127::-;19816:10;19811:3;19807:20;19804:1;19797:31;19847:4;19844:1;19837:15;19871:4;19868:1;19861:15;20605:489;-1:-1:-1;;;;;20874:15:41;;;20856:34;;20926:15;;20921:2;20906:18;;20899:43;20973:2;20958:18;;20951:34;;;21021:3;21016:2;21001:18;;20994:31;;;20799:4;;21042:46;;21068:19;;21060:6;21042:46;:::i;:::-;21034:54;20605:489;-1:-1:-1;;;;;;20605:489:41:o;21099:249::-;21168:6;21221:2;21209:9;21200:7;21196:23;21192:32;21189:52;;;21237:1;21234;21227:12;21189:52;21269:9;21263:16;21288:30;21312:5;21288:30;:::i", - "linkReferences": {} - }, - "methodIdentifiers": { - "DEPOSIT_MINIMUM()": "ae34b6e1", - "MAX_COLLATERATION_RATIO()": "c6c53398", - "MAX_SUPPLY()": "32cb6b0c", - "MAX_XP()": "d9dee3d1", - "MIN_XP()": "cc672ae2", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "burn(uint256)": "42966c68", - "deposit(uint256,uint256)": "e2bbb158", - "dyad()": "add95a51", - "getApproved(uint256)": "081812fc", - "idToNft(uint256)": "483afb2d", - "isApprovedForAll(address,address)": "e985e9c5", - "mintDyad(uint256)": "fb9103cc", - "mintNft(address)": "e9c2e14b", - "mintNftCopy(address,(uint256,int256,uint256),uint256)": "3924bc9a", - "name()": "06fdde03", - "numberOfMints()": "959f7857", - "ownerOf(uint256)": "6352211e", - "pool()": "16f0115b", - "redeem(uint256,uint256)": "7cbc2373", - "safeTransferFrom(address,address,uint256)": "42842e0e", - "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", - "setApprovalForAll(address,bool)": "a22cb465", - "setPool(address)": "4437152a", - "supportsInterface(bytes4)": "01ffc9a7", - "symbol()": "95d89b41", - "tokenByIndex(uint256)": "4f6ccce7", - "tokenOfOwnerByIndex(address,uint256)": "2f745c59", - "tokenURI(uint256)": "c87b56dd", - "totalSupply()": "18160ddd", - "transferFrom(address,address,uint256)": "23b872dd", - "updateNft(uint256,(uint256,int256,uint256))": "46e85757", - "updateXP(uint256,uint256)": "b0082cdf", - "withdraw(uint256,uint256)": "441a3e70" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dyad\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"depositMinimum\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"withInsiderAllocation\",\"type\":\"bool\"}],\"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\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DyadDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DyadMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DyadRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DyadWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"NftMinted\",\"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\":[],\"name\":\"DEPOSIT_MINIMUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_COLLATERATION_RATIO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_XP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_XP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dyad\",\"outputs\":[{\"internalType\":\"contract DYAD\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"idToNft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deposit\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"xp\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"mintDyad\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mintNft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deposit\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"xp\",\"type\":\"uint256\"}],\"internalType\":\"struct IdNFT.Nft\",\"name\":\"nft\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"depositMinimum\",\"type\":\"uint256\"}],\"name\":\"mintNftCopy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numberOfMints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"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\":\"address\",\"name\":\"newPool\",\"type\":\"address\"}],\"name\":\"setPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deposit\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"xp\",\"type\":\"uint256\"}],\"internalType\":\"struct IdNFT.Nft\",\"name\":\"nft\",\"type\":\"tuple\"}],\"name\":\"updateNft\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minXP\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxXP\",\"type\":\"uint256\"}],\"name\":\"updateXP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dNFT.sol\":\"dNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b394e20d57877a825c24c1841e219d6ab1e41decec060ea935422ac9b7a25f8a\",\"dweb:/ipfs/QmVTaGCMR4Gi9w1LUVVcjEJHrHF2qcr1avFkLtsLD6sEAr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x563955911f858071c56f3e8532daaf396187a9d7c19efa937dbfc5ae3102d63f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa7a100d0db86a9228cc332fc5384e10d014cadb50205073cc2ecc413063eb3e\",\"dweb:/ipfs/QmWkAeXzw3q6WY4g9Uwf4orSsUAJVzm3PimgyvZtnMMMY4\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x086fbe904291497e1532ef340f1bd589078f49e3d4d0bbfd88f5e02fb89261eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0df1e3e965b78a0d98dda2d1d6a6acde88f515b1d3a9ad02f505e93fa7babeda\",\"dweb:/ipfs/QmW4cSbGriRAj7XRZu6zSaqspe4eyYWkF7WfJbj3rmmLbk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0x9123f580eba51449ffa3c20bbd3ee96951915303fcb93390e755d015ea0a6d2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee6ae9c9605604c64ddcbe910a6608e86942ffd85dec80042dcb280f2d9d6732\",\"dweb:/ipfs/QmbkxKAwXCDTbAummGKayAcKAqBmiCHJxRQH31GCwZkRsr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0xf45d90fedf6d5014aad5e98b598043d153731b01b362208cad6fdf002f73e226\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc71e98826390dbb8985a2e2ba06e26f4e6012d38e77a726edb2cb577a930b5d\",\"dweb:/ipfs/QmZGk4yGrvvG5maKX2hhXb7fTswfEMSrG9SyQ69M2F7mBT\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb94eac067c85cd79a4195c0a1f4a878e9827329045c12475a0199f1ae17b9700\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ad84b5dbf40ba9e944cc25bd0a98c51bafd49cff30efe5ef5aef921a70081de\",\"dweb:/ipfs/Qme8iCeqe9VdNgWktTTsSxUfHcJEXuvPaJpshWDzoWj56V\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xbaa90c891304799f6aa4039eae4b59afc0b59ce3bcc647f3fc2bbf5a04b17f1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc3f5b077759f92f28ba4182d9410aa8fd586d7efc5f76bdd22228bf2d227f0\",\"dweb:/ipfs/QmbLPLb31LxAyB7GWir5AssC1TYVHqhBsN6R7APj2UV9fv\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xbb9b373ec337797b9f8822171cb191095cb11e729a4fde4c207d25b8b642fb93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fba7f4448f95e3a42fba5305cc02403eee23aa62e742a0ae7bca609bdaf89da\",\"dweb:/ipfs/QmSXV5FapsVemawU9Zzkx3u3DNLhCaS9MnwcZLsPpMSKnz\"]},\"src/PoolLibrary.sol\":{\"keccak256\":\"0x6db066bc87d226de8531921b3a20785236daf36448492370a010d0c67691e64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://802af3029520e39c21bbb3b776f6acb218d2d9c7e6edc75e448074766573cfa5\",\"dweb:/ipfs/QmdXYGuE6yaApzFY3jbsdhGC2pbx9BAJMYSQvXQVSB7aRN\"]},\"src/dNFT.sol\":{\"keccak256\":\"0xf89e84b7a34ceee2dc447491aae5a4a5c1b9fac3d0f3773107a97f8fc5ab1ec6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d875c470bd4b06ddd492771c1227c35d72cfeba0d34488cf065df6d53dafc2\",\"dweb:/ipfs/QmPHhvgB5SZCFNritA8zsEuW9W6dz6BMN2S3Au8r6K8YVf\"]},\"src/dyad.sol\":{\"keccak256\":\"0x33a2cd63d49a5ad63f4655c1f7037f23888acdda57ebd359e5985c964094fe62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://580710339478fb3dc5ebad8797a86ac760afeaef3f738359c52476d4fe1e5aea\",\"dweb:/ipfs/QmaioD8uwE54otpueiuAzdQ66JArwwVRausxYExxaSKW7H\"]},\"src/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x04e226f725931178d0f6cce7c785d5e45cff7a2af22603822f28522477f7db17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ccbf7e527c9222c2b3379d6507e3051b9dbf0e1c3635831caac9d9ff2ae7af\",\"dweb:/ipfs/QmViagqveBEi3ADBQrthdkWfcCwkxtKGwN7z24r38n5ZBY\"]},\"src/interfaces/IdNFT.sol\":{\"keccak256\":\"0x3bfd70ee19625ac17f78152d7cabf7e55d0682f15f42d003b9469f58f158aaa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3f2c8761ed8909fbacc1ee2a90352c7829fd273dd6cc0ba8905b0009d97cd83\",\"dweb:/ipfs/QmY6RgCTREf7bqvLHVqnrY1wjTzriTms71JpBRJm88VZo6\"]},\"src/pool.sol\":{\"keccak256\":\"0x51f4ae017bc7fb797e440315cd7f1e865cae415b5aef4f439f31eb9b37410c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0cddb881ffca610ffc4f99f2bcaeef8aafaeb378a7a3d448f97b350d92d6c2b\",\"dweb:/ipfs/QmTvs8Uz9rFDqSAyHfhcUtT9BYWCSJr3UygFQtCk6ZmirX\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.17+commit.8df45f5f" }, - "language": "Solidity", - "output": { - "abi": [ + { + "inputs": [], + "name": "dyad", + "outputs": [ { - "inputs": [ - { - "internalType": "address", - "name": "_dyad", - "type": "address" - }, - { - "internalType": "uint256", - "name": "depositMinimum", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "withInsiderAllocation", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, + "internalType": "contract Dyad", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "dyadDelta", + "outputs": [ { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "approved", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256", - "indexed": true - } - ], - "type": "event", - "name": "Approval", - "anonymous": false + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "exchange", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, + "components": [ { "internalType": "address", "name": "operator", - "type": "address", - "indexed": true + "type": "address" }, { - "internalType": "bool", - "name": "approved", - "type": "bool", - "indexed": false + "internalType": "enum DNft.Permission[]", + "name": "permissions", + "type": "uint8[]" } ], - "type": "event", - "name": "ApprovalForAll", - "anonymous": false - }, + "internalType": "struct DNft.PermissionSet[]", + "name": "_permissionSets", + "type": "tuple[]" + } + ], + "name": "grant", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "DyadDeposited", - "anonymous": false + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "DyadMinted", - "anonymous": false + "internalType": "address", + "name": "operator", + "type": "address" }, { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "DyadRedeemed", - "anonymous": false + "internalType": "enum DNft.Permission", + "name": "permission", + "type": "uint8" + } + ], + "name": "hasPermission", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "DyadWithdrawn", - "anonymous": false + "internalType": "address", + "name": "operator", + "type": "address" }, { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - } - ], - "type": "event", - "name": "NftMinted", - "anonymous": false - }, + "internalType": "enum DNft.Permission[]", + "name": "permissions", + "type": "uint8[]" + } + ], + "name": "hasPermissions", + "outputs": [ { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256", - "indexed": true - } - ], - "type": "event", - "name": "Transfer", - "anonymous": false - }, + "internalType": "bool[]", + "name": "_hasPermissions", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "DEPOSIT_MINIMUM", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_COLLATERATION_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "idToClaimed", + "outputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_XP", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "idToNft", + "outputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MIN_XP", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "uint256", + "name": "xp", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "approve" + "internalType": "int256", + "name": "deposit", + "type": "int256" }, { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "uint256", + "name": "withdrawal", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "burn" + "internalType": "uint256", + "name": "lastOwnershipChange", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit" + "internalType": "bool", + "name": "isActive", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "dyad", - "outputs": [ - { - "internalType": "contract DYAD", - "name": "", - "type": "address" - } - ] + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "idToNftPermission", + "outputs": [ + { + "internalType": "uint8", + "name": "permissions", + "type": "uint8" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] + "internalType": "uint248", + "name": "lastUpdated", + "type": "uint248" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "idToNft", - "outputs": [ - { - "internalType": "uint256", - "name": "withdrawn", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "deposit", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "xp", - "type": "uint256" - } - ] - }, + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastEthPrice", + "outputs": [ { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "mintDyad" - }, + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "mintNft", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "struct IdNFT.Nft", - "name": "nft", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "withdrawn", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "deposit", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "xp", - "type": "uint256" - } - ] - }, - { - "internalType": "uint256", - "name": "depositMinimum", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "mintNftCopy", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidate", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "maxXp", + "outputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "numberOfMints", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "pool", - "outputs": [ - { - "internalType": "contract Pool", - "name": "", - "type": "address" - } - ] + "internalType": "uint256", + "name": "_from", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "redeem" + "internalType": "uint256", + "name": "_to", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "safeTransferFrom" - }, + "internalType": "int256", + "name": "_amount", + "type": "int256" + } + ], + "name": "move", + "outputs": [ { - "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" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "safeTransferFrom" + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "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": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "prevDyadDelta", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "prevSyncedBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setApprovalForAll" + "internalType": "address", + "name": "to", + "type": "address" }, { - "inputs": [ - { - "internalType": "address", - "name": "newPool", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setPool" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function", - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] + "internalType": "address", + "name": "to", + "type": "address" }, { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "tokenByIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "address", + "name": "to", + "type": "address" }, { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "tokenOfOwnerByIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] + "internalType": "address", + "name": "operator", + "type": "address" }, { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferFrom" - }, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "struct IdNFT.Nft", - "name": "nft", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "withdrawn", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "deposit", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "xp", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "updateNft" + "internalType": "uint256", + "name": "_from", + "type": "uint256" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "minXP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxXP", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "updateXP" - }, + "internalType": "uint256", + "name": "_to", + "type": "uint256" + } + ], + "name": "snipe", + "outputs": [ { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "withdraw" + "internalType": "int256", + "name": "", + "type": "int256" } ], - "devdoc": { - "kind": "dev", - "methods": { - "approve(address,uint256)": { - "details": "See {IERC721-approve}." - }, - "balanceOf(address)": { - "details": "See {IERC721-balanceOf}." - }, - "burn(uint256)": { - "details": "Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator." - }, - "getApproved(uint256)": { - "details": "See {IERC721-getApproved}." - }, - "isApprovedForAll(address,address)": { - "details": "See {IERC721-isApprovedForAll}." - }, - "name()": { - "details": "See {IERC721Metadata-name}." - }, - "ownerOf(uint256)": { - "details": "See {IERC721-ownerOf}." - }, - "safeTransferFrom(address,address,uint256)": { - "details": "See {IERC721-safeTransferFrom}." - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "See {IERC721-safeTransferFrom}." - }, - "setApprovalForAll(address,bool)": { - "details": "See {IERC721-setApprovalForAll}." - }, - "symbol()": { - "details": "See {IERC721Metadata-symbol}." - }, - "tokenByIndex(uint256)": { - "details": "See {IERC721Enumerable-tokenByIndex}." - }, - "tokenOfOwnerByIndex(address,uint256)": { - "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." - }, - "tokenURI(uint256)": { - "details": "See {IERC721Metadata-tokenURI}." - }, - "totalSupply()": { - "details": "See {IERC721Enumerable-totalSupply}." - }, - "transferFrom(address,address,uint256)": { - "details": "See {IERC721-transferFrom}." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } + "stateMutability": "nonpayable", + "type": "function" }, - "settings": { - "remappings": [ - ":@openzeppelin/=lib/openzeppelin-contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/" + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/dNFT.sol": "dNFT" - }, - "libraries": {} + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, - "sources": { - "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": { - "keccak256": "0x3270d2a7a042dda9cf85dddd16e6106c2c9ad784c0972315630b2a148215fa7d", - "urls": [ - "bzz-raw://b394e20d57877a825c24c1841e219d6ab1e41decec060ea935422ac9b7a25f8a", - "dweb:/ipfs/QmVTaGCMR4Gi9w1LUVVcjEJHrHF2qcr1avFkLtsLD6sEAr" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b", - "urls": [ - "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34", - "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol": { - "keccak256": "0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b", - "urls": [ - "bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f", - "dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", - "urls": [ - "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", - "dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol": { - "keccak256": "0x563955911f858071c56f3e8532daaf396187a9d7c19efa937dbfc5ae3102d63f", - "urls": [ - "bzz-raw://fa7a100d0db86a9228cc332fc5384e10d014cadb50205073cc2ecc413063eb3e", - "dweb:/ipfs/QmWkAeXzw3q6WY4g9Uwf4orSsUAJVzm3PimgyvZtnMMMY4" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": { - "keccak256": "0x086fbe904291497e1532ef340f1bd589078f49e3d4d0bbfd88f5e02fb89261eb", - "urls": [ - "bzz-raw://0df1e3e965b78a0d98dda2d1d6a6acde88f515b1d3a9ad02f505e93fa7babeda", - "dweb:/ipfs/QmW4cSbGriRAj7XRZu6zSaqspe4eyYWkF7WfJbj3rmmLbk" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol": { - "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da", - "urls": [ - "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708", - "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol": { - "keccak256": "0x9123f580eba51449ffa3c20bbd3ee96951915303fcb93390e755d015ea0a6d2d", - "urls": [ - "bzz-raw://ee6ae9c9605604c64ddcbe910a6608e86942ffd85dec80042dcb280f2d9d6732", - "dweb:/ipfs/QmbkxKAwXCDTbAummGKayAcKAqBmiCHJxRQH31GCwZkRsr" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol": { - "keccak256": "0xf45d90fedf6d5014aad5e98b598043d153731b01b362208cad6fdf002f73e226", - "urls": [ - "bzz-raw://dc71e98826390dbb8985a2e2ba06e26f4e6012d38e77a726edb2cb577a930b5d", - "dweb:/ipfs/QmZGk4yGrvvG5maKX2hhXb7fTswfEMSrG9SyQ69M2F7mBT" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { - "keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf", - "urls": [ - "bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34", - "dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9", - "urls": [ - "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146", - "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb94eac067c85cd79a4195c0a1f4a878e9827329045c12475a0199f1ae17b9700", - "urls": [ - "bzz-raw://2ad84b5dbf40ba9e944cc25bd0a98c51bafd49cff30efe5ef5aef921a70081de", - "dweb:/ipfs/Qme8iCeqe9VdNgWktTTsSxUfHcJEXuvPaJpshWDzoWj56V" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Context.sol": { - "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", - "urls": [ - "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", - "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0xbaa90c891304799f6aa4039eae4b59afc0b59ce3bcc647f3fc2bbf5a04b17f1e", - "urls": [ - "bzz-raw://1cc3f5b077759f92f28ba4182d9410aa8fd586d7efc5f76bdd22228bf2d227f0", - "dweb:/ipfs/QmbLPLb31LxAyB7GWir5AssC1TYVHqhBsN6R7APj2UV9fv" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { - "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", - "urls": [ - "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", - "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { - "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", - "urls": [ - "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", - "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xbb9b373ec337797b9f8822171cb191095cb11e729a4fde4c207d25b8b642fb93", - "urls": [ - "bzz-raw://6fba7f4448f95e3a42fba5305cc02403eee23aa62e742a0ae7bca609bdaf89da", - "dweb:/ipfs/QmSXV5FapsVemawU9Zzkx3u3DNLhCaS9MnwcZLsPpMSKnz" - ], - "license": "MIT" - }, - "src/PoolLibrary.sol": { - "keccak256": "0x6db066bc87d226de8531921b3a20785236daf36448492370a010d0c67691e64c", - "urls": [ - "bzz-raw://802af3029520e39c21bbb3b776f6acb218d2d9c7e6edc75e448074766573cfa5", - "dweb:/ipfs/QmdXYGuE6yaApzFY3jbsdhGC2pbx9BAJMYSQvXQVSB7aRN" - ], - "license": "MIT" - }, - "src/dNFT.sol": { - "keccak256": "0xf89e84b7a34ceee2dc447491aae5a4a5c1b9fac3d0f3773107a97f8fc5ab1ec6", - "urls": [ - "bzz-raw://09d875c470bd4b06ddd492771c1227c35d72cfeba0d34488cf065df6d53dafc2", - "dweb:/ipfs/QmPHhvgB5SZCFNritA8zsEuW9W6dz6BMN2S3Au8r6K8YVf" - ], - "license": "MIT" - }, - "src/dyad.sol": { - "keccak256": "0x33a2cd63d49a5ad63f4655c1f7037f23888acdda57ebd359e5985c964094fe62", - "urls": [ - "bzz-raw://580710339478fb3dc5ebad8797a86ac760afeaef3f738359c52476d4fe1e5aea", - "dweb:/ipfs/QmaioD8uwE54otpueiuAzdQ66JArwwVRausxYExxaSKW7H" - ], - "license": "MIT" - }, - "src/interfaces/AggregatorV3Interface.sol": { - "keccak256": "0x04e226f725931178d0f6cce7c785d5e45cff7a2af22603822f28522477f7db17", - "urls": [ - "bzz-raw://85ccbf7e527c9222c2b3379d6507e3051b9dbf0e1c3635831caac9d9ff2ae7af", - "dweb:/ipfs/QmViagqveBEi3ADBQrthdkWfcCwkxtKGwN7z24r38n5ZBY" - ], - "license": "MIT" - }, - "src/interfaces/IdNFT.sol": { - "keccak256": "0x3bfd70ee19625ac17f78152d7cabf7e55d0682f15f42d003b9469f58f158aaa9", - "urls": [ - "bzz-raw://f3f2c8761ed8909fbacc1ee2a90352c7829fd273dd6cc0ba8905b0009d97cd83", - "dweb:/ipfs/QmY6RgCTREf7bqvLHVqnrY1wjTzriTms71JpBRJm88VZo6" - ], - "license": "MIT" - }, - "src/pool.sol": { - "keccak256": "0x51f4ae017bc7fb797e440315cd7f1e865cae415b5aef4f439f31eb9b37410c8b", - "urls": [ - "bzz-raw://a0cddb881ffca610ffc4f99f2bcaeef8aafaeb378a7a3d448f97b350d92d6c2b", - "dweb:/ipfs/QmTvs8Uz9rFDqSAyHfhcUtT9BYWCSJr3UygFQtCk6ZmirX" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/dNFT.sol", - "id": 28871, - "exportedSymbols": { - "Address": [ - 25811 - ], - "Context": [ - 25833 - ], - "DYAD": [ - 28933 + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } ], - "ERC165": [ - 26032 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } ], - "ERC721": [ - 24905 + "name": "sync", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } ], - "ERC721Burnable": [ - 25069 + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "syncedBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "ERC721Enumerable": [ - 25423 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "timeOfLastSync", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "IERC165": [ - 26044 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } ], - "IERC721": [ - 25021 + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "IERC721Enumerable": [ - 25454 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } ], - "IERC721Metadata": [ - 25481 + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "IERC721Receiver": [ - 25039 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } ], - "IdNFT": [ - 29186 + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } ], - "Math": [ - 26909 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "Pool": [ - 32759 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalXp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "Strings": [ - 26008 + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } ], - "dNFT": [ - 28870 - ] + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, - "nodeType": "SourceUnit", - "src": "32:8630:31", - "nodes": [ - { - "id": 28109, - "nodeType": "PragmaDirective", - "src": "32:24:31", - "nodes": [], - "literals": [ - "solidity", - "^", - "0.8", - ".13" - ] - }, - { - "id": 28110, - "nodeType": "ImportDirective", - "src": "58:78:31", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol", - "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", - "nameLocation": "-1:-1:-1", - "scope": 28871, - "sourceUnit": 25424, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 28111, - "nodeType": "ImportDirective", - "src": "137:76:31", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol", - "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol", - "nameLocation": "-1:-1:-1", - "scope": 28871, - "sourceUnit": 25070, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 28113, - "nodeType": "ImportDirective", - "src": "214:37:31", - "nodes": [], - "absolutePath": "src/dyad.sol", - "file": "../src/dyad.sol", - "nameLocation": "-1:-1:-1", - "scope": 28871, - "sourceUnit": 28934, - "symbolAliases": [ - { - "foreign": { - "id": 28112, - "name": "DYAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28933, - "src": "222:4:31", - "typeDescriptions": {} + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x60806040526001600a553480156200001657600080fd5b50604051620052463803806200524683398101604081905262000039916200097c565b60405180604001604052806008815260200167111e58590813919560c21b815250604051806040016040528060048152602001631913919560e21b815250816000908162000088919062000b05565b50600162000097828262000b05565b5050601780546001600160a01b038087166001600160a01b031992831617909255601880549286169290911691909117905550620000d462000180565b600b5560005b815181101562000176576000806200011484848151811062000100576200010062000bd1565b6020026020010151620001fb60201b60201c565b6000918252601360209081526040928390208251815590820151600182015591810151600283015560608101516003830155608001516004909101805460ff1916911515919091179055508190506200016d8162000bfd565b915050620000da565b5050505062000cce565b60185460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa158015620001cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f1919062000c31565b5091949350505050565b6000620002326040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b60006200023e60085490565b90506107d08110620002635760405163794bb39b60e01b815260040160405180910390fd5b6200026f8482620002f2565b620002a46040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b620002b2816103e862000497565b60405182906001600160a01b038716907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe90600090a39094909350915050565b6001600160a01b0382166200034e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064015b60405180910390fd5b6000818152600260205260409020546001600160a01b031615620003b55760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640162000345565b620003c5600083836001620004dd565b6000818152600260205260409020546001600160a01b0316156200042c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640162000345565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8082600001818151620004ab919062000c86565b90525060115482511115620004c05781516011555b8060106000828254620004d4919062000c86565b90915550505050565b620004f6848484846200051660201b620029651760201c565b506000908152601360205260409020436003909101555050565b50505050565b6200052f848484846200067a60201b62002aa51760201c565b6001811115620005a85760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f727465640000000000000000000000606482015260840162000345565b816001600160a01b03851662000607576200060181600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6200062d565b836001600160a01b0316856001600160a01b0316146200062d576200062d858262000709565b6001600160a01b0384166200064d576200064781620007b6565b62000673565b846001600160a01b0316846001600160a01b031614620006735762000673848262000870565b5050505050565b600181111562000510576001600160a01b03841615620006c4576001600160a01b03841660009081526003602052604081208054839290620006be90849062000ca2565b90915550505b6001600160a01b0383161562000510576001600160a01b03831660009081526003602052604081208054839290620006fe90849062000c86565b909155505050505050565b600060016200072384620008c160201b620016aa1760201c565b6200072f919062000ca2565b60008381526007602052604090205490915080821462000783576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090620007ca9060019062000ca2565b60008381526009602052604081205460088054939450909284908110620007f557620007f562000bd1565b90600052602060002001549050806008838154811062000819576200081962000bd1565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548062000854576200085462000cb8565b6001900381819060005260206000200160009055905550505050565b60006200088883620008c160201b620016aa1760201c565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160a01b0382166200092d5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840162000345565b506001600160a01b031660009081526003602052604090205490565b80516001600160a01b03811681146200096157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200099257600080fd5b6200099d8462000949565b92506020620009ae81860162000949565b60408601519093506001600160401b0380821115620009cc57600080fd5b818701915087601f830112620009e157600080fd5b815181811115620009f657620009f662000966565b8060051b604051601f19603f8301168101818110858211171562000a1e5762000a1e62000966565b60405291825284820192508381018501918a83111562000a3d57600080fd5b938501935b8285101562000a665762000a568562000949565b8452938501939285019262000a42565b8096505050505050509250925092565b600181811c9082168062000a8b57607f821691505b60208210810362000aac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000b0057600081815260208120601f850160051c8101602086101562000adb5750805b601f850160051c820191505b8181101562000afc5782815560010162000ae7565b5050505b505050565b81516001600160401b0381111562000b215762000b2162000966565b62000b398162000b32845462000a76565b8462000ab2565b602080601f83116001811462000b71576000841562000b585750858301515b600019600386901b1c1916600185901b17855562000afc565b600085815260208120601f198616915b8281101562000ba25788860151825594840194600190910190840162000b81565b508582101562000bc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000c125762000c1262000be7565b5060010190565b80516001600160501b03811681146200096157600080fd5b600080600080600060a0868803121562000c4a57600080fd5b62000c558662000c19565b945060208601519350604086015192506060860151915062000c7a6080870162000c19565b90509295509295909350565b8082018082111562000c9c5762000c9c62000be7565b92915050565b8181038181111562000c9c5762000c9c62000be7565b634e487b7160e01b600052603160045260246000fd5b6145688062000cde6000396000f3fe6080604052600436106103765760003560e01c80635fae8b3d116101d1578063b88d4fde11610102578063decb84dc116100a0578063e64466911161006f578063e644669114610a54578063e8101c1b14610a6a578063e985e9c514610a85578063febb16df14610ace57600080fd5b8063decb84dc146109d1578063e2bbb158146109e7578063e63697c814610a07578063e643ebac14610a2757600080fd5b8063c9e3d730116100dc578063c9e3d73014610960578063d49125071461097b578063d878016114610991578063de1eecb3146109b157600080fd5b8063b88d4fde14610906578063c784cbe614610926578063c87b56dd1461094057600080fd5b8063959526191161016f578063a22cb46511610149578063a22cb46514610886578063add95a51146108a6578063b1357bf9146108c6578063b260c42a146108e657600080fd5b8063959526191461083557806395d89b4114610855578063a14586151461086a57600080fd5b80637038fc4e116101ab5780637038fc4e146107bf57806370a08231146107d5578063823abfd9146107f5578063916b9bef1461081557600080fd5b80635fae8b3d146107795780636352211e1461078c5780636a627842146107ac57600080fd5b80633295787f116102ab57806342842e0e116102495780634b2ec8ee116102235780634b2ec8ee1461055c5780634f6ccce7146107195780635355655914610739578063551e123b1461074c57600080fd5b806342842e0e14610667578063483afb2d1461068757806348f2d243146106fe57600080fd5b8063364164551161028557806336416455146105a9578063379607f514610615578063397b802414610635578063413217b71461065157600080fd5b80633295787f1461055c57806332cb6b0c1461057757806335f2faf01461058d57600080fd5b8063174c67e1116103185780631849c73a116102f25780631849c73a146104e657806323b872dd14610506578063265f63a1146105265780632f745c591461053c57600080fd5b8063174c67e1146104a157806318160ddd146104b7578063181f6cdd146104cc57600080fd5b8063081812fc11610354578063081812fc1461040d578063095ea7b3146104455780630ba4ae301461046757806310d4f96d1461048b57600080fd5b8063019e242e1461037b57806301ffc9a7146103cb57806306fdde03146103eb575b600080fd5b34801561038757600080fd5b506103b6610396366004613a5b565b601560209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b3480156103d757600080fd5b506103b66103e6366004613a93565b610ae4565b3480156103f757600080fd5b50610400610b0f565b6040516103c29190613b00565b34801561041957600080fd5b5061042d610428366004613b13565b610ba1565b6040516001600160a01b0390911681526020016103c2565b34801561045157600080fd5b50610465610460366004613b48565b610bc8565b005b34801561047357600080fd5b5061047d61025881565b6040519081526020016103c2565b34801561049757600080fd5b5061047d60105481565b3480156104ad57600080fd5b5061047d60125481565b3480156104c357600080fd5b5060085461047d565b3480156104d857600080fd5b5061047d65b5e620f4800081565b3480156104f257600080fd5b5061047d610501366004613b72565b610ce2565b34801561051257600080fd5b50610465610521366004613b9e565b610e0d565b34801561053257600080fd5b5061047d600c5481565b34801561054857600080fd5b5061047d610557366004613b48565b610e3e565b34801561056857600080fd5b5061047d66016bcc41e9000081565b34801561058357600080fd5b5061047d6107d081565b34801561059957600080fd5b5061047d6714d1120d7b16000081565b3480156105b557600080fd5b506105f46105c4366004613bda565b601460209081526000928352604080842090915290825290205460ff81169061010090046001600160f81b031682565b6040805160ff90931683526001600160f81b039091166020830152016103c2565b34801561062157600080fd5b5061047d610630366004613b13565b610ed4565b34801561064157600080fd5b5061047d670de0b6b3a764000081565b34801561065d57600080fd5b5061047d60115481565b34801561067357600080fd5b50610465610682366004613b9e565b6110fe565b34801561069357600080fd5b506106d46106a2366004613b13565b601360205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a0016103c2565b34801561070a57600080fd5b5061047d660110d9316ec00081565b34801561072557600080fd5b5061047d610734366004613b13565b611119565b61047d610747366004613b13565b6111ac565b34801561075857600080fd5b5061076c610767366004613c4b565b61129f565b6040516103c29190613ca5565b610465610787366004613bda565b61142f565b34801561079857600080fd5b5061042d6107a7366004613b13565b6115a3565b61047d6107ba366004613ceb565b611603565b3480156107cb57600080fd5b5061047d600b5481565b3480156107e157600080fd5b5061047d6107f0366004613ceb565b6116aa565b34801561080157600080fd5b506103b6610810366004613d15565b611730565b34801561082157600080fd5b50610465610830366004613b13565b6117e7565b34801561084157600080fd5b50610465610850366004613d51565b611912565b34801561086157600080fd5b50610400611a6a565b34801561087657600080fd5b5061047d670853a0d2313c000081565b34801561089257600080fd5b506104656108a1366004613dab565b611a79565b3480156108b257600080fd5b5060175461042d906001600160a01b031681565b3480156108d257600080fd5b5061047d6108e1366004613b13565b611a88565b3480156108f257600080fd5b50610465610901366004613b13565b611d0c565b34801561091257600080fd5b50610465610921366004613e52565b611dc5565b34801561093257600080fd5b5061047d655af3107a400081565b34801561094c57600080fd5b5061040061095b366004613b13565b611dfd565b34801561096c57600080fd5b5061047d662386f26fc1000081565b34801561098757600080fd5b5061047d600e5481565b34801561099d57600080fd5b5061047d6109ac366004613f12565b611e70565b3480156109bd57600080fd5b5061047d6109cc366004613a5b565b6120b9565b3480156109dd57600080fd5b5061047d600d5481565b3480156109f357600080fd5b5061047d610a02366004613a5b565b61246c565b348015610a1357600080fd5b5061047d610a22366004613f12565b61267b565b348015610a3357600080fd5b5061047d610a42366004613b13565b60166020526000908152604090205481565b348015610a6057600080fd5b5061047d600f5481565b348015610a7657600080fd5b5061047d66038d7ea4c6800081565b348015610a9157600080fd5b506103b6610aa0366004613f37565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610ada57600080fd5b5061047d6103e881565b60006001600160e01b0319821663780e9d6360e01b1480610b095750610b0982612b2d565b92915050565b606060008054610b1e90613f61565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a90613f61565b8015610b975780601f10610b6c57610100808354040283529160200191610b97565b820191906000526020600020905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b6000610bac82612b7d565b506000908152600460205260409020546001600160a01b031690565b6000610bd3826115a3565b9050806001600160a01b0316836001600160a01b031603610c455760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610c615750610c618133610aa0565b610cd35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610c3c565b610cdd8383612bdf565b505050565b6000836004610cf2823383611730565b610d1357818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600086815260136020526040812060040154879160ff90911615159003610d5057604051632080e3d360e01b815260048101829052602401610c3c565b60008513610d5d57600080fd5b60008781526013602052604090206001810154861315610d9857806001015460405163689b65e960e11b8152600401610c3c91815260200190565b60018082018054889003905560008881526013602052604081209091018054889290610dc5908490613ff7565b9091555050604051868152879089907fecf7a2a9b87e864721b005a74148c7e41af15fa580f04024f55a5902b32e556e9060200160405180910390a350939695505050505050565b610e173382612c4d565b610e335760405162461bcd60e51b8152600401610c3c90614017565b610cdd838383612ccb565b6000610e49836116aa565b8210610eab5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c3c565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6000816007610ee4823383611730565b610f0557818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600084815260136020526040812060040154859160ff90911615159003610f4257604051632080e3d360e01b815260048101829052602401610c3c565b6000858152601560209081526040808320600e54845290915290205460ff1615610f8d57600e54604051636bd4745f60e01b8152610c3c918791600401918252602082015260400190565b6000858152601560209081526040808320600e5484528252808320805460ff1916600190811790915588845260138352818420825160a0810184528154815291810154938201939093526002830154918101919091526003820154606082015260049091015460ff1615156080820152908061100e655af3107a4000612e3c565b90506000600c5413156110325761102b600c548460000151612ed1565b9150611057565b6000611044600c548560000151612f16565b90935090506110538183614064565b9150505b81836020018181516110699190613ff7565b9052506110768382612ff6565b600088815260136020908152604091829020855181558582015160018201558583015160028201556060860151600382015560808601516004909101805460ff1916911515919091179055905183815289917f80d2137c01c20957d2640ac104067c27bdfb6f6405d354a50e4e0663dbfd3406910160405180910390a2509695505050505050565b610cdd83838360405180602001604052806000815250611dc5565b600061112460085490565b82106111875760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c3c565b6008828154811061119a5761119a614077565b90600052602060002001549050919050565b60008160026111bc823383611730565b6111dd57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600084815260136020526040812060040154859160ff9091161515900361121a57604051632080e3d360e01b815260048101829052602401610c3c565b600085815260166020526040812043905561123434613037565b90508060136000888152602001908152602001600020600101600082825461125c9190613ff7565b909155505060405181815286907ff99ef896dbec5c9f8ed65fcd703b977e36f533d2dbe0f54b055724102c66935b9060200160405180910390a295945050505050565b60608167ffffffffffffffff8111156112ba576112ba613de2565b6040519080825280602002602001820160405280156112e3578160200160208202803683370190505b509050836001600160a01b03166112f9866115a3565b6001600160a01b03160361134e5760005b8281101561134857600182828151811061132657611326614077565b91151560209283029190910190910152806113408161408d565b91505061130a565b50611427565b60008581526014602090815260408083206001600160a01b0388168452825280832081518083018352905460ff8116825261010090046001600160f81b0316818401819052898552601390935292206003015410156114255760005b83811015611423576113e78585838181106113c7576113c7614077565b90506020020160208101906113dc91906140a6565b835160ff169061305c565b1561141157600183828151811061140057611400614077565b911515602092830291909101909101525b8061141b8161408d565b9150506113aa565b505b505b949350505050565b6000828152601360209081526040808320815160a081018352815481526001820154938101849052600282015492810192909252600381015460608301526004015460ff161515608082015291811261149e57604051634fd4b9f760e01b815260048101859052602401610c3c565b60006114a934613037565b90506114b7826000196140c1565b8112156114da57604051630e874cb160e41b815260048101829052602401610c3c565b6114f3836114ee66016bcc41e90000612e3c565b612ff6565b80836020018181516115059190613ff7565b905250600085815260136020908152604091829020855181559085015160018201559084015160028201556060840151600382015560808401516004909101805460ff191691151591909117905561156661155f866115a3565b8587612ccb565b60405185906001600160a01b038616907fa5ee7a2b0254fce91deed604506790ed7fa072d0b14cba4859c3bc8955b9caac90600090a35050505050565b6000818152600260205260408120546001600160a01b031680610b095760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c3c565b60008061160f34613037565b9050670de0b6b3a764000081121561163d57604051633e0432ef60e01b815260048101829052602401610c3c565b60008061164985613089565b602081810195865260016080830181815260008581526013909352604092839020845181559751918801919091559082015160028701556060909101516003860155516004909401805460ff19169415159490941790935550909392505050565b60006001600160a01b0382166117145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610c3c565b506001600160a01b031660009081526003602052604090205490565b6000826001600160a01b0316611745856115a3565b6001600160a01b03160361175b575060016117e0565b60008481526014602090815260408083206001600160a01b038716845282529182902082518084019093525460ff81168084526101009091046001600160f81b0316918301919091526117ae908461305c565b80156117dc575080602001516001600160f81b03166013600087815260200190815260200160002060030154105b9150505b9392505050565b8060016117f5823383611730565b61181657818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600083815260136020526040812060040154849160ff9091161515900361185357604051632080e3d360e01b815260048101829052602401610c3c565b60008481526013602052604090206002015415611886576040516339d0e29960e01b815260048101859052602401610c3c565b600084815260136020526040812060010154136118b957604051632449a18d60e01b815260048101859052602401610c3c565b60008481526013602052604090819020600401805460ff19169055517fed48e4e899b34abded07dd8f092a22585a3fdec7db6b83f3927af165bf04cb1e906119049086815260200190565b60405180910390a150505050565b823361191d826115a3565b6001600160a01b0316146119475760405163d64dfb0160e01b815260048101829052602401610c3c565b4360005b83811015611a2757600085858381811061196757611967614077565b905060200281019061197991906140f1565b61198290614111565b90508060200151516000036119ba57600087815260146020908152604080832084516001600160a01b03168452909152812055611a1e565b60405180604001604052806119d28360200151613178565b60ff90811682526001600160f81b0380871660209384015260008b815260148452604080822087516001600160a01b031683528552902084519490930151166101000292169190911790555b5060010161194b565b507f5015559e4f379aa0dd2effee572c916b09bb68ed41ad9ab127c8066f052e1643858585604051611a5b939291906141d9565b60405180910390a15050505050565b606060018054610b1e90613f61565b611a843383836131c6565b5050565b600081815260136020526040812060040154829060ff1615158203611ac357604051632080e3d360e01b815260048101829052602401610c3c565b601754604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3191906142e9565b905080600003611b5457604051632a8ef6b160e11b815260040160405180910390fd5b610258601254611b649190614064565b421015611b84576040516334490f5560e11b815260040160405180910390fd5b6000611b8e613294565b90506000611bab600b5483611ba39190614302565b600b5461330c565b90506000611bb882613330565b905066038d7ea4c68000811015611be55760405163e746612160e01b815260048101839052602401610c3c565b42601255600b839055600e8054600f55439055600c54600d55611c10611c0a85613347565b836133b1565b600c55600087815260136020908152604091829020825160a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260049091015460ff1615156080820152611c80816114ee611c7b8566016bcc41e90000614064565b612e3c565b600088815260136020908152604091829020835181558382015160018201558383015160028201556060840151600382015560808401516004909101805460ff191691151591909117905590518981527fff14d8520387b9b85d2a017dc41ae15db04a22d4c67deac04eb45048631ffa86910160405180910390a1600c54965050505050505b50919050565b806000611d1a823383611730565b611d3b57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600083815260136020526040902060040154839060ff161515600103611d77576040516307e1313160e11b815260048101829052602401610c3c565b60008481526013602052604090819020600401805460ff19166001179055517f3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce906119049086815260200190565b611dcf3383612c4d565b611deb5760405162461bcd60e51b8152600401610c3c90614017565b611df7848484846133d6565b50505050565b6060611e0882612b7d565b6000611e1f60408051602081019091526000815290565b90506000815111611e3f57604051806020016040528060008152506117e0565b80611e4984613409565b604051602001611e5a929190614329565b6040516020818303038152906040529392505050565b6000600a54600114611eb15760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610c3c565b6002600a55836006611ec4823383611730565b611ee557818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600086815260136020526040812060040154879160ff90911615159003611f2257604051632080e3d360e01b815260048101829052602401610c3c565b60008781526013602052604090206002810154861115611f5857604051630b32a9c760e21b815260048101879052602401610c3c565b6002810180548790039055601754604051632770a7eb60e21b8152336004820152602481018890526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015611faf57600080fd5b505af1158015611fc3573d6000803e3d6000fd5b505050506000611fd9611fd4613294565b61349c565b611fe7886305f5e100614358565b611ff1919061436f565b90506000886001600160a01b03168260405160006040518083038185875af1925050503d8060008114612040576040519150601f19603f3d011682016040523d82523d6000602084013e612045565b606091505b505090508061207057604051637eaf0ff960e11b815233600482015260248101839052604401610c3c565b6040518881528a9033907ff3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec2629060200160405180910390a3506001600a5598975050505050505050565b600082815260136020526040812060040154839060ff16151582036120f457604051632080e3d360e01b815260048101829052602401610c3c565b600083815260136020526040812060040154849160ff9091161515900361213157604051632080e3d360e01b815260048101829052602401610c3c565b6000858152601560209081526040808320600f54845290915290205460ff161561217c57600f54604051630cff449b60e21b8152610c3c918791600401918252602082015260400190565b6001601560008781526020019081526020016000206000600f54815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601360008781526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff16151515158152505090506000601360008781526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815250509050600080600d541315612318576122a1600d548460000151612ed1565b90506122c6816122c1670853a0d2313c0000670de0b6b3a7640000614302565b6133b1565b836020018181516122d79190613ff7565b9052506122ec81670853a0d2313c00006133b1565b826020018181516122fd9190613ff7565b905250612313826114ee65b5e620f48000612e3c565b612366565b600061232a600d548560000151612f16565b6020860180519294509092508391612343908390613ff7565b9052506123508482612ff6565b612364836114ee660110d9316ec000612e3c565b505b82601360008a81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555090505081601360008981526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555090505086887f0e7d191e2306ac0b4fbf5a2cb60c28ddb5a0507bd6dc06322d0d1ea0925eabd78360405161245791815260200190565b60405180910390a3945050505b505092915050565b600082600361247c823383611730565b61249d57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600085815260136020526040812060040154869160ff909116151590036124da57604051632080e3d360e01b815260048101829052602401610c3c565b600086815260166020908152604080832043905560139091529020600281015486111561251d57604051630b32a9c760e21b815260048101879052602401610c3c565b600281018054879003905561253186613347565b8160010160008282546125449190613ff7565b90915550506017546040516323b872dd60e01b8152336004820152306024820152604481018890526000916001600160a01b0316906323b872dd906064016020604051808303816000875af11580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c59190614391565b9050806125d157600080fd5b601754604051632770a7eb60e21b8152306004820152602481018990526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b15801561261d57600080fd5b505af1158015612631573d6000803e3d6000fd5b50505050877f06da3309189fa49284f335d2c2bcb4cb0b8ad2a59ad92a9bdebeeb8f1ceba5118860405161266791815260200190565b60405180910390a250949695505050505050565b600083600561268b823383611730565b6126ac57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600086815260136020526040812060040154879160ff909116151590036126e957604051632080e3d360e01b815260048101829052602401610c3c565b60008781526016602052604090205443900361271a5760405163194af33f60e21b8152436004820152602401610c3c565b6000878152601360205260409020600181015461273687613347565b131561275d57806001015460405163689b65e960e11b8152600401610c3c91815260200190565b600061276a611fd4613294565b6127786305f5e1004761436f565b6127829190614358565b9050600061281288601760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280191906142e9565b61280b9190614064565b83906134ee565b90506714d1120d7b1600008110156128405760405163f51aaf6560e01b815260048101829052602401610c3c565b600061284b60085490565b612855908461436f565b905060008985600201546128699190614064565b90508181111561288f57604051630dd16eb960e41b815260048101839052602401610c3c565b6128988a613347565b600186018054919091039055600285018190556017546040516340c10f1960e01b81526001600160a01b038d81166004830152602482018d9052909116906340c10f1990604401600060405180830381600087803b1580156128f957600080fd5b505af115801561290d573d6000803e3d6000fd5b505050508a6001600160a01b03168c7fcf7d23a3cbe4e8b36ff82fd1b05b1b17373dc7804b4ebbd6e2356716ef2023728c60405161294d91815260200190565b60405180910390a350979a9950505050505050505050565b61297184848484612aa5565b60018111156129e05760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610c3c565b816001600160a01b038516612a3c57612a3781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612a5f565b836001600160a01b0316856001600160a01b031614612a5f57612a5f8582613503565b6001600160a01b038416612a7b57612a76816135a0565b612a9e565b846001600160a01b0316846001600160a01b031614612a9e57612a9e848261364f565b5050505050565b6001811115611df7576001600160a01b03841615612aeb576001600160a01b03841660009081526003602052604081208054839290612ae59084906143ae565b90915550505b6001600160a01b03831615611df7576001600160a01b03831660009081526003602052604081208054839290612b22908490614064565b909155505050505050565b60006001600160e01b031982166380ac58cd60e01b1480612b5e57506001600160e01b03198216635b5e139f60e01b145b80610b0957506301ffc9a760e01b6001600160e01b0319831614610b09565b6000818152600260205260409020546001600160a01b0316612bdc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c3c565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612c14826115a3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612c59836115a3565b9050806001600160a01b0316846001600160a01b03161480612ca057506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806114275750836001600160a01b0316612cb984610ba1565b6001600160a01b031614949350505050565b826001600160a01b0316612cde826115a3565b6001600160a01b031614612d045760405162461bcd60e51b8152600401610c3c906143c1565b6001600160a01b038216612d665760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c3c565b612d738383836001613693565b826001600160a01b0316612d86826115a3565b6001600160a01b031614612dac5760405162461bcd60e51b8152600401610c3c906143c1565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000662386f26fc10000612ec783601760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec191906142e9565b906136b9565b610b09919061436f565b600080612ee9601054846134ee90919063ffffffff16565b90506000841215612f0957612f0681670de0b6b3a76400006143ae565b90505b611427846122c183613347565b6000806000612f30601154856134ee90919063ffffffff16565b90506000612f49601054866134ee90919063ffffffff16565b90506000612f5783836134ee565b90506000612f6d84670de0b6b3a76400006143ae565b90506000612fa9612fa484612f8160085490565b612f9390670de0b6b3a7640000614358565b612f9d91906143ae565b84906134ee565b613347565b90506000612fb7828b6133b1565b90506000612fce87612fc884613330565b906134ee565b905081612fe3670de0b6b3a76400008361436f565b98509850505050505050505b9250929050565b80826000018181516130089190614064565b9052506011548251111561301c5781516011555b806010600082825461302e9190614064565b90915550505050565b6000613041613294565b613052612fa46305f5e1008561436f565b610b0991906140c1565b60008082600781111561307157613071613f95565b600160ff9182161b9490941690931615159392505050565b60006130bf6040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b60006130ca60085490565b90506107d081106130ee5760405163794bb39b60e01b815260040160405180910390fd5b6130f884826136ce565b61312c6040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b613138816103e8612ff6565b60405182906001600160a01b038716907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe90600090a39094909350915050565b6000805b8251811015611d065782818151811061319757613197614077565b602002602001015160078111156131b0576131b0613f95565b600160ff9190911681901b92909217910161317c565b816001600160a01b0316836001600160a01b0316036132275760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c3c565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60185460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa1580156132de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133029190614420565b5091949350505050565b670de0b6b3a764000082810290810583148215151661332a57600080fd5b05919050565b6000808212156133435781600003610b09565b5090565b60006001600160ff1b038211156133435760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610c3c565b81810282158382058314176133c557600080fd5b670de0b6b3a7640000900592915050565b6133e1848484612ccb565b6133ed84848484613867565b611df75760405162461bcd60e51b8152600401610c3c90614470565b6060600061341683613965565b600101905060008167ffffffffffffffff81111561343657613436613de2565b6040519080825280601f01601f191660200182016040528015613460576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461346a57509392505050565b6000808212156133435760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610c3c565b60006117e083670de0b6b3a764000084613a3d565b60006001613510846116aa565b61351a91906143ae565b60008381526007602052604090205490915080821461356d576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906135b2906001906143ae565b600083815260096020526040812054600880549394509092849081106135da576135da614077565b9060005260206000200154905080600883815481106135fb576135fb614077565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613633576136336144c2565b6001900381819060005260206000200160009055905550505050565b600061365a836116aa565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b61369f84848484612965565b506000908152601360205260409020436003909101555050565b60006117e08383670de0b6b3a7640000613a3d565b6001600160a01b0382166137245760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c3c565b6000818152600260205260409020546001600160a01b0316156137895760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c3c565b613797600083836001613693565b6000818152600260205260409020546001600160a01b0316156137fc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c3c565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561395d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906138ab9033908990889088906004016144d8565b6020604051808303816000875af19250505080156138e6575060408051601f3d908101601f191682019092526138e391810190614515565b60015b613943573d808015613914576040519150601f19603f3d011682016040523d82523d6000602084013e613919565b606091505b50805160000361393b5760405162461bcd60e51b8152600401610c3c90614470565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611427565b506001611427565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106139a45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106139d0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106139ee57662386f26fc10000830492506010015b6305f5e1008310613a06576305f5e100830492506008015b6127108310613a1a57612710830492506004015b60648310613a2c576064830492506002015b600a8310610b095760010192915050565b6000826000190484118302158202613a5457600080fd5b5091020490565b60008060408385031215613a6e57600080fd5b50508035926020909101359150565b6001600160e01b031981168114612bdc57600080fd5b600060208284031215613aa557600080fd5b81356117e081613a7d565b60005b83811015613acb578181015183820152602001613ab3565b50506000910152565b60008151808452613aec816020860160208601613ab0565b601f01601f19169290920160200192915050565b6020815260006117e06020830184613ad4565b600060208284031215613b2557600080fd5b5035919050565b80356001600160a01b0381168114613b4357600080fd5b919050565b60008060408385031215613b5b57600080fd5b613b6483613b2c565b946020939093013593505050565b600080600060608486031215613b8757600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215613bb357600080fd5b613bbc84613b2c565b9250613bca60208501613b2c565b9150604084013590509250925092565b60008060408385031215613bed57600080fd5b82359150613bfd60208401613b2c565b90509250929050565b60008083601f840112613c1857600080fd5b50813567ffffffffffffffff811115613c3057600080fd5b6020830191508360208260051b8501011115612fef57600080fd5b60008060008060608587031215613c6157600080fd5b84359350613c7160208601613b2c565b9250604085013567ffffffffffffffff811115613c8d57600080fd5b613c9987828801613c06565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015613cdf578351151583529284019291840191600101613cc1565b50909695505050505050565b600060208284031215613cfd57600080fd5b6117e082613b2c565b803560088110613b4357600080fd5b600080600060608486031215613d2a57600080fd5b83359250613d3a60208501613b2c565b9150613d4860408501613d06565b90509250925092565b600080600060408486031215613d6657600080fd5b83359250602084013567ffffffffffffffff811115613d8457600080fd5b613d9086828701613c06565b9497909650939450505050565b8015158114612bdc57600080fd5b60008060408385031215613dbe57600080fd5b613dc783613b2c565b91506020830135613dd781613d9d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613e1b57613e1b613de2565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613e4a57613e4a613de2565b604052919050565b60008060008060808587031215613e6857600080fd5b613e7185613b2c565b93506020613e80818701613b2c565b935060408601359250606086013567ffffffffffffffff80821115613ea457600080fd5b818801915088601f830112613eb857600080fd5b813581811115613eca57613eca613de2565b613edc601f8201601f19168501613e21565b91508082528984828501011115613ef257600080fd5b808484018584013760008482840101525080935050505092959194509250565b600080600060608486031215613f2757600080fd5b83359250613bca60208501613b2c565b60008060408385031215613f4a57600080fd5b613f5383613b2c565b9150613bfd60208401613b2c565b600181811c90821680613f7557607f821691505b602082108103611d0657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60088110613fc957634e487b7160e01b600052602160045260246000fd5b9052565b828152604081016117e06020830184613fab565b634e487b7160e01b600052601160045260246000fd5b808201828112600083128015821682158216171561246457612464613fe1565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b80820180821115610b0957610b09613fe1565b634e487b7160e01b600052603260045260246000fd5b60006001820161409f5761409f613fe1565b5060010190565b6000602082840312156140b857600080fd5b6117e082613d06565b80820260008212600160ff1b841416156140dd576140dd613fe1565b8181058314821517610b0957610b09613fe1565b60008235603e1983360301811261410757600080fd5b9190910192915050565b60006040823603121561412357600080fd5b61412b613df8565b61413483613b2c565b815260208084013567ffffffffffffffff8082111561415257600080fd5b9085019036601f83011261416557600080fd5b81358181111561417757614177613de2565b8060051b9150614188848301613e21565b81815291830184019184810190368411156141a257600080fd5b938501935b838510156141c7576141b885613d06565b825293850193908501906141a7565b94860194909452509295945050505050565b8381526040602080830182905282820184905260009190606090818501600587811b8701840189875b8a8110156142d857898303605f190185528135368d9003603e1901811261422857600080fd5b8c018389016001600160a01b0361423e83613b2c565b16855287820135601e1983360301811261425757600080fd5b90910187810191903567ffffffffffffffff81111561427557600080fd5b80871b360383131561428657600080fd5b8589018b9052908190526000908986015b818310156142c3576142b1816142ac86613d06565b613fab565b92890192600192909201918901614297565b97890197955050509186019150600101614202565b50909b9a5050505050505050505050565b6000602082840312156142fb57600080fd5b5051919050565b818103600083128015838313168383128216171561432257614322613fe1565b5092915050565b6000835161433b818460208801613ab0565b83519083019061434f818360208801613ab0565b01949350505050565b8082028115828204841417610b0957610b09613fe1565b60008261438c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156143a357600080fd5b81516117e081613d9d565b81810381811115610b0957610b09613fe1565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b805169ffffffffffffffffffff81168114613b4357600080fd5b600080600080600060a0868803121561443857600080fd5b61444186614406565b945060208601519350604086015192506060860151915061446460808701614406565b90509295509295909350565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061450b90830184613ad4565b9695505050505050565b60006020828403121561452757600080fd5b81516117e081613a7d56fea26469706673582212200ffb074479914c4e81c8a2c70e09d99a2171d0626cb710ff1509bb489ba5ddb364736f6c63430008110033", + "sourceMap": "764:18244:40:-:0;;;454:1:34;429:26;;6161:467:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1390:113:14;;;;;;;;;;;;;-1:-1:-1;;;1390:113:14;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:14;;;1464:5;1456;:13;;;;;;:::i;:::-;-1:-1:-1;1479:7:14;:17;1489:7;1479;:17;:::i;:::-;-1:-1:-1;;6291:4:40::1;:35:::0;;-1:-1:-1;;;;;6291:35:40;;::::1;-1:-1:-1::0;;;;;;6291:35:40;;::::1;;::::0;;;6334:6:::1;:46:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6412:20:40::1;:18;:20::i;:::-;6388:12;:44:::0;6446:6:::1;6441:183;6462:9;:16;6458:1;:20;6441:183;;;6496:7;6505:14:::0;6523:22:::1;6532:9;6542:1;6532:12;;;;;;;;:::i;:::-;;;;;;;6523:8;;;:22;;:::i;:::-;6597:11;::::0;;;:7:::1;:11;::::0;;;;;;;;:17;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;6597:17:40::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;6480:3:40;;-1:-1:-1;6480:3:40::1;::::0;::::1;:::i;:::-;;;;6441:183;;;;6161:467:::0;;;764:18244;;18621:119;18711:6;;:24;;;-1:-1:-1;;;18711:24:40;;;;18673:9;;-1:-1:-1;;;;;18711:6:40;;:22;;:24;;;;;;;;;;;;;;:6;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18692:43:40;;18621:119;-1:-1:-1;;;;18621:119:40:o;7041:319::-;7088:4;7094:10;764:18244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7094:10;7114:7;7124:13;1717:10:17;:17;;1630:111;7124:13:40;7114:23;;1147:4;7149:2;:16;7145:52;;7176:18;;-1:-1:-1;;;7176:18:40;;;;;;;;;;;7145:52;7204:13;7210:2;7214;7204:5;:13::i;:::-;7254:14;764:18244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7254:14;7277:27;7284:3;1606:5;7277:6;:27::i;:::-;7317:14;;7328:2;;-1:-1:-1;;;;;7317:14:40;;;;;;;;7347:2;;7351:3;;-1:-1:-1;7041:319:40;-1:-1:-1;;7041:319:40:o;9091:920:14:-;-1:-1:-1;;;;;9170:16:14;;9162:61;;;;-1:-1:-1;;;9162:61:14;;5485:2:50;9162:61:14;;;5467:21:50;;;5504:18;;;5497:30;5563:34;5543:18;;;5536:62;5615:18;;9162:61:14;;;;;;;;;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:14;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:14;;5846:2:50;9233:58:14;;;5828:21:50;5885:2;5865:18;;;5858:30;5924;5904:18;;;5897:58;5972:18;;9233:58:14;5644:352:50;9233:58:14;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:14;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:14;;5846:2:50;9437:58:14;;;5828:21:50;5885:2;5865:18;;;5858:30;5924;5904:18;;;5897:58;5972:18;;9437:58:14;5644:352:50;9437:58:14;-1:-1:-1;;;;;9837:13:14;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:14;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;9091:920;;:::o;17144:142:40:-;17212:2;17201:3;:6;;:13;;;;;;;:::i;:::-;;;-1:-1:-1;17235:5:40;;17226:6;;:14;17222:39;;;17252:6;;17244:5;:14;17222:39;17279:2;17268:7;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;17144:142:40:o;18744:262::-;18891:55;18918:5;18925:3;18930;18935:10;18891:26;;;;;:55;;:::i;:::-;-1:-1:-1;18954:12:40;;;;:7;:12;;;;;18989;18954:32;;;;:47;-1:-1:-1;;18744:262:40:o;16800:153:14:-;;;;;:::o;2112:890:17:-;2283:61;2310:4;2316:2;2320:12;2334:9;2283:26;;;;;:61;;:::i;:::-;2371:1;2359:9;:13;2355:219;;;2500:63;;-1:-1:-1;;;2500:63:17;;6333:2:50;2500:63:17;;;6315:21:50;6372:2;6352:18;;;6345:30;6411:34;6391:18;;;6384:62;6482:23;6462:18;;;6455:51;6523:19;;2500:63:17;6131:417:50;2355:219:17;2602:12;-1:-1:-1;;;;;2629:18:17;;2625:183;;2663:40;2695:7;3811:10;:17;;3784:24;;;;:15;:24;;;;;:44;;;3838:24;;;;;;;;;;;;3708:161;2663:40;2625:183;;;2732:2;-1:-1:-1;;;;;2724:10:17;:4;-1:-1:-1;;;;;2724:10:17;;2720:88;;2750:47;2783:4;2789:7;2750:32;:47::i;:::-;-1:-1:-1;;;;;2821:16:17;;2817:179;;2853:45;2890:7;2853:36;:45::i;:::-;2817:179;;;2925:4;-1:-1:-1;;;;;2919:10:17;:2;-1:-1:-1;;;;;2919:10:17;;2915:81;;2945:40;2973:2;2977:7;2945:27;:40::i;:::-;2273:729;2112:890;;;;:::o;15698:396:14:-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:14;;;15899:85;;-1:-1:-1;;;;;15941:15:14;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:14;-1:-1:-1;;;;;16001:16:14;;;15997:81;;-1:-1:-1;;;;;16037:13:14;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:14;;;;:::o;4486:970:17:-;4748:22;4798:1;4773:22;4790:4;4773:16;;;;;:22;;:::i;:::-;:26;;;;:::i;:::-;4809:18;4830:26;;;:17;:26;;;;;;4748:51;;-1:-1:-1;4960:28:17;;;4956:323;;-1:-1:-1;;;;;5026:18:17;;5004:19;5026:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5075:30;;;;;;:44;;;5191:30;;:17;:30;;;;;:43;;;4956:323;-1:-1:-1;5372:26:17;;;;:17;:26;;;;;;;;5365:33;;;-1:-1:-1;;;;;5415:18:17;;;;;:12;:18;;;;;:34;;;;;;;5408:41;4486:970::o;5744:1061::-;6018:10;:17;5993:22;;6018:21;;6038:1;;6018:21;:::i;:::-;6049:18;6070:24;;;:15;:24;;;;;;6438:10;:26;;5993:46;;-1:-1:-1;6070:24:17;;5993:46;;6438:26;;;;;;:::i;:::-;;;;;;;;;6416:48;;6500:11;6475:10;6486;6475:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6579:28;;;:15;:28;;;;;;;:41;;;6748:24;;;;;6741:31;6782:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5815:990;;;5744:1061;:::o;3296:217::-;3380:14;3397:20;3414:2;3397:16;;;;;:20;;:::i;:::-;-1:-1:-1;;;;;3427:16:17;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3471:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3296:217:17:o;1929:204:14:-;2001:7;-1:-1:-1;;;;;2028:19:14;;2020:73;;;;-1:-1:-1;;;2020:73:14;;7020:2:50;2020:73:14;;;7002:21:50;7059:2;7039:18;;;7032:30;7098:34;7078:18;;;7071:62;-1:-1:-1;;;7149:18:50;;;7142:39;7198:19;;2020:73:14;6818:405:50;2020:73:14;-1:-1:-1;;;;;;2110:16:14;;;;;:9;:16;;;;;;;1929:204::o;14:177:50:-;93:13;;-1:-1:-1;;;;;135:31:50;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:1299;441:6;449;457;510:2;498:9;489:7;485:23;481:32;478:52;;;526:1;523;516:12;478:52;549:40;579:9;549:40;:::i;:::-;539:50;;608:2;629:49;674:2;663:9;659:18;629:49;:::i;:::-;722:2;707:18;;701:25;619:59;;-1:-1:-1;;;;;;775:14:50;;;772:34;;;802:1;799;792:12;772:34;840:6;829:9;825:22;815:32;;885:7;878:4;874:2;870:13;866:27;856:55;;907:1;904;897:12;856:55;936:2;930:9;958:2;954;951:10;948:36;;;964:18;;:::i;:::-;1010:2;1007:1;1003:10;1042:2;1036:9;1105:2;1101:7;1096:2;1092;1088:11;1084:25;1076:6;1072:38;1160:6;1148:10;1145:22;1140:2;1128:10;1125:18;1122:46;1119:72;;;1171:18;;:::i;:::-;1207:2;1200:22;1257:18;;;1291:15;;;;-1:-1:-1;1333:11:50;;;1329:20;;;1361:19;;;1358:39;;;1393:1;1390;1383:12;1358:39;1417:11;;;;1437:159;1453:6;1448:3;1445:15;1437:159;;;1519:34;1549:3;1519:34;:::i;:::-;1507:47;;1470:12;;;;1574;;;;1437:159;;;1615:6;1605:16;;;;;;;;328:1299;;;;;:::o;1632:380::-;1711:1;1707:12;;;;1754;;;1775:61;;1829:4;1821:6;1817:17;1807:27;;1775:61;1882:2;1874:6;1871:14;1851:18;1848:38;1845:161;;1928:10;1923:3;1919:20;1916:1;1909:31;1963:4;1960:1;1953:15;1991:4;1988:1;1981:15;1845:161;;1632:380;;;:::o;2143:545::-;2245:2;2240:3;2237:11;2234:448;;;2281:1;2306:5;2302:2;2295:17;2351:4;2347:2;2337:19;2421:2;2409:10;2405:19;2402:1;2398:27;2392:4;2388:38;2457:4;2445:10;2442:20;2439:47;;;-1:-1:-1;2480:4:50;2439:47;2535:2;2530:3;2526:12;2523:1;2519:20;2513:4;2509:31;2499:41;;2590:82;2608:2;2601:5;2598:13;2590:82;;;2653:17;;;2634:1;2623:13;2590:82;;;2594:3;;;2234:448;2143:545;;;:::o;2864:1352::-;2984:10;;-1:-1:-1;;;;;3006:30:50;;3003:56;;;3039:18;;:::i;:::-;3068:97;3158:6;3118:38;3150:4;3144:11;3118:38;:::i;:::-;3112:4;3068:97;:::i;:::-;3220:4;;3284:2;3273:14;;3301:1;3296:663;;;;4003:1;4020:6;4017:89;;;-1:-1:-1;4072:19:50;;;4066:26;4017:89;-1:-1:-1;;2821:1:50;2817:11;;;2813:24;2809:29;2799:40;2845:1;2841:11;;;2796:57;4119:81;;3266:944;;3296:663;2090:1;2083:14;;;2127:4;2114:18;;-1:-1:-1;;3332:20:50;;;3450:236;3464:7;3461:1;3458:14;3450:236;;;3553:19;;;3547:26;3532:42;;3645:27;;;;3613:1;3601:14;;;;3480:19;;3450:236;;;3454:3;3714:6;3705:7;3702:19;3699:201;;;3775:19;;;3769:26;-1:-1:-1;;3858:1:50;3854:14;;;3870:3;3850:24;3846:37;3842:42;3827:58;3812:74;;3699:201;-1:-1:-1;;;;;3946:1:50;3930:14;;;3926:22;3913:36;;-1:-1:-1;2864:1352:50:o;4221:127::-;4282:10;4277:3;4273:20;4270:1;4263:31;4313:4;4310:1;4303:15;4337:4;4334:1;4327:15;4353:127;4414:10;4409:3;4405:20;4402:1;4395:31;4445:4;4442:1;4435:15;4469:4;4466:1;4459:15;4485:135;4524:3;4545:17;;;4542:43;;4565:18;;:::i;:::-;-1:-1:-1;4612:1:50;4601:13;;4485:135::o;4625:175::-;4703:13;;-1:-1:-1;;;;;4745:30:50;;4735:41;;4725:69;;4790:1;4787;4780:12;4805:473;4908:6;4916;4924;4932;4940;4993:3;4981:9;4972:7;4968:23;4964:33;4961:53;;;5010:1;5007;5000:12;4961:53;5033:39;5062:9;5033:39;:::i;:::-;5023:49;;5112:2;5101:9;5097:18;5091:25;5081:35;;5156:2;5145:9;5141:18;5135:25;5125:35;;5200:2;5189:9;5185:18;5179:25;5169:35;;5223:49;5267:3;5256:9;5252:19;5223:49;:::i;:::-;5213:59;;4805:473;;;;;;;;:::o;6001:125::-;6066:9;;;6087:10;;;6084:36;;;6100:18;;:::i;:::-;6001:125;;;;:::o;6553:128::-;6620:9;;;6641:11;;;6638:37;;;6655:18;;:::i;6686:127::-;6747:10;6742:3;6738:20;6735:1;6728:31;6778:4;6775:1;6768:15;6802:4;6799:1;6792:15;6818:405;764:18244:40;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x6080604052600436106103765760003560e01c80635fae8b3d116101d1578063b88d4fde11610102578063decb84dc116100a0578063e64466911161006f578063e644669114610a54578063e8101c1b14610a6a578063e985e9c514610a85578063febb16df14610ace57600080fd5b8063decb84dc146109d1578063e2bbb158146109e7578063e63697c814610a07578063e643ebac14610a2757600080fd5b8063c9e3d730116100dc578063c9e3d73014610960578063d49125071461097b578063d878016114610991578063de1eecb3146109b157600080fd5b8063b88d4fde14610906578063c784cbe614610926578063c87b56dd1461094057600080fd5b8063959526191161016f578063a22cb46511610149578063a22cb46514610886578063add95a51146108a6578063b1357bf9146108c6578063b260c42a146108e657600080fd5b8063959526191461083557806395d89b4114610855578063a14586151461086a57600080fd5b80637038fc4e116101ab5780637038fc4e146107bf57806370a08231146107d5578063823abfd9146107f5578063916b9bef1461081557600080fd5b80635fae8b3d146107795780636352211e1461078c5780636a627842146107ac57600080fd5b80633295787f116102ab57806342842e0e116102495780634b2ec8ee116102235780634b2ec8ee1461055c5780634f6ccce7146107195780635355655914610739578063551e123b1461074c57600080fd5b806342842e0e14610667578063483afb2d1461068757806348f2d243146106fe57600080fd5b8063364164551161028557806336416455146105a9578063379607f514610615578063397b802414610635578063413217b71461065157600080fd5b80633295787f1461055c57806332cb6b0c1461057757806335f2faf01461058d57600080fd5b8063174c67e1116103185780631849c73a116102f25780631849c73a146104e657806323b872dd14610506578063265f63a1146105265780632f745c591461053c57600080fd5b8063174c67e1146104a157806318160ddd146104b7578063181f6cdd146104cc57600080fd5b8063081812fc11610354578063081812fc1461040d578063095ea7b3146104455780630ba4ae301461046757806310d4f96d1461048b57600080fd5b8063019e242e1461037b57806301ffc9a7146103cb57806306fdde03146103eb575b600080fd5b34801561038757600080fd5b506103b6610396366004613a5b565b601560209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b3480156103d757600080fd5b506103b66103e6366004613a93565b610ae4565b3480156103f757600080fd5b50610400610b0f565b6040516103c29190613b00565b34801561041957600080fd5b5061042d610428366004613b13565b610ba1565b6040516001600160a01b0390911681526020016103c2565b34801561045157600080fd5b50610465610460366004613b48565b610bc8565b005b34801561047357600080fd5b5061047d61025881565b6040519081526020016103c2565b34801561049757600080fd5b5061047d60105481565b3480156104ad57600080fd5b5061047d60125481565b3480156104c357600080fd5b5060085461047d565b3480156104d857600080fd5b5061047d65b5e620f4800081565b3480156104f257600080fd5b5061047d610501366004613b72565b610ce2565b34801561051257600080fd5b50610465610521366004613b9e565b610e0d565b34801561053257600080fd5b5061047d600c5481565b34801561054857600080fd5b5061047d610557366004613b48565b610e3e565b34801561056857600080fd5b5061047d66016bcc41e9000081565b34801561058357600080fd5b5061047d6107d081565b34801561059957600080fd5b5061047d6714d1120d7b16000081565b3480156105b557600080fd5b506105f46105c4366004613bda565b601460209081526000928352604080842090915290825290205460ff81169061010090046001600160f81b031682565b6040805160ff90931683526001600160f81b039091166020830152016103c2565b34801561062157600080fd5b5061047d610630366004613b13565b610ed4565b34801561064157600080fd5b5061047d670de0b6b3a764000081565b34801561065d57600080fd5b5061047d60115481565b34801561067357600080fd5b50610465610682366004613b9e565b6110fe565b34801561069357600080fd5b506106d46106a2366004613b13565b601360205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a0016103c2565b34801561070a57600080fd5b5061047d660110d9316ec00081565b34801561072557600080fd5b5061047d610734366004613b13565b611119565b61047d610747366004613b13565b6111ac565b34801561075857600080fd5b5061076c610767366004613c4b565b61129f565b6040516103c29190613ca5565b610465610787366004613bda565b61142f565b34801561079857600080fd5b5061042d6107a7366004613b13565b6115a3565b61047d6107ba366004613ceb565b611603565b3480156107cb57600080fd5b5061047d600b5481565b3480156107e157600080fd5b5061047d6107f0366004613ceb565b6116aa565b34801561080157600080fd5b506103b6610810366004613d15565b611730565b34801561082157600080fd5b50610465610830366004613b13565b6117e7565b34801561084157600080fd5b50610465610850366004613d51565b611912565b34801561086157600080fd5b50610400611a6a565b34801561087657600080fd5b5061047d670853a0d2313c000081565b34801561089257600080fd5b506104656108a1366004613dab565b611a79565b3480156108b257600080fd5b5060175461042d906001600160a01b031681565b3480156108d257600080fd5b5061047d6108e1366004613b13565b611a88565b3480156108f257600080fd5b50610465610901366004613b13565b611d0c565b34801561091257600080fd5b50610465610921366004613e52565b611dc5565b34801561093257600080fd5b5061047d655af3107a400081565b34801561094c57600080fd5b5061040061095b366004613b13565b611dfd565b34801561096c57600080fd5b5061047d662386f26fc1000081565b34801561098757600080fd5b5061047d600e5481565b34801561099d57600080fd5b5061047d6109ac366004613f12565b611e70565b3480156109bd57600080fd5b5061047d6109cc366004613a5b565b6120b9565b3480156109dd57600080fd5b5061047d600d5481565b3480156109f357600080fd5b5061047d610a02366004613a5b565b61246c565b348015610a1357600080fd5b5061047d610a22366004613f12565b61267b565b348015610a3357600080fd5b5061047d610a42366004613b13565b60166020526000908152604090205481565b348015610a6057600080fd5b5061047d600f5481565b348015610a7657600080fd5b5061047d66038d7ea4c6800081565b348015610a9157600080fd5b506103b6610aa0366004613f37565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610ada57600080fd5b5061047d6103e881565b60006001600160e01b0319821663780e9d6360e01b1480610b095750610b0982612b2d565b92915050565b606060008054610b1e90613f61565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a90613f61565b8015610b975780601f10610b6c57610100808354040283529160200191610b97565b820191906000526020600020905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b6000610bac82612b7d565b506000908152600460205260409020546001600160a01b031690565b6000610bd3826115a3565b9050806001600160a01b0316836001600160a01b031603610c455760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610c615750610c618133610aa0565b610cd35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610c3c565b610cdd8383612bdf565b505050565b6000836004610cf2823383611730565b610d1357818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600086815260136020526040812060040154879160ff90911615159003610d5057604051632080e3d360e01b815260048101829052602401610c3c565b60008513610d5d57600080fd5b60008781526013602052604090206001810154861315610d9857806001015460405163689b65e960e11b8152600401610c3c91815260200190565b60018082018054889003905560008881526013602052604081209091018054889290610dc5908490613ff7565b9091555050604051868152879089907fecf7a2a9b87e864721b005a74148c7e41af15fa580f04024f55a5902b32e556e9060200160405180910390a350939695505050505050565b610e173382612c4d565b610e335760405162461bcd60e51b8152600401610c3c90614017565b610cdd838383612ccb565b6000610e49836116aa565b8210610eab5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c3c565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6000816007610ee4823383611730565b610f0557818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600084815260136020526040812060040154859160ff90911615159003610f4257604051632080e3d360e01b815260048101829052602401610c3c565b6000858152601560209081526040808320600e54845290915290205460ff1615610f8d57600e54604051636bd4745f60e01b8152610c3c918791600401918252602082015260400190565b6000858152601560209081526040808320600e5484528252808320805460ff1916600190811790915588845260138352818420825160a0810184528154815291810154938201939093526002830154918101919091526003820154606082015260049091015460ff1615156080820152908061100e655af3107a4000612e3c565b90506000600c5413156110325761102b600c548460000151612ed1565b9150611057565b6000611044600c548560000151612f16565b90935090506110538183614064565b9150505b81836020018181516110699190613ff7565b9052506110768382612ff6565b600088815260136020908152604091829020855181558582015160018201558583015160028201556060860151600382015560808601516004909101805460ff1916911515919091179055905183815289917f80d2137c01c20957d2640ac104067c27bdfb6f6405d354a50e4e0663dbfd3406910160405180910390a2509695505050505050565b610cdd83838360405180602001604052806000815250611dc5565b600061112460085490565b82106111875760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c3c565b6008828154811061119a5761119a614077565b90600052602060002001549050919050565b60008160026111bc823383611730565b6111dd57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600084815260136020526040812060040154859160ff9091161515900361121a57604051632080e3d360e01b815260048101829052602401610c3c565b600085815260166020526040812043905561123434613037565b90508060136000888152602001908152602001600020600101600082825461125c9190613ff7565b909155505060405181815286907ff99ef896dbec5c9f8ed65fcd703b977e36f533d2dbe0f54b055724102c66935b9060200160405180910390a295945050505050565b60608167ffffffffffffffff8111156112ba576112ba613de2565b6040519080825280602002602001820160405280156112e3578160200160208202803683370190505b509050836001600160a01b03166112f9866115a3565b6001600160a01b03160361134e5760005b8281101561134857600182828151811061132657611326614077565b91151560209283029190910190910152806113408161408d565b91505061130a565b50611427565b60008581526014602090815260408083206001600160a01b0388168452825280832081518083018352905460ff8116825261010090046001600160f81b0316818401819052898552601390935292206003015410156114255760005b83811015611423576113e78585838181106113c7576113c7614077565b90506020020160208101906113dc91906140a6565b835160ff169061305c565b1561141157600183828151811061140057611400614077565b911515602092830291909101909101525b8061141b8161408d565b9150506113aa565b505b505b949350505050565b6000828152601360209081526040808320815160a081018352815481526001820154938101849052600282015492810192909252600381015460608301526004015460ff161515608082015291811261149e57604051634fd4b9f760e01b815260048101859052602401610c3c565b60006114a934613037565b90506114b7826000196140c1565b8112156114da57604051630e874cb160e41b815260048101829052602401610c3c565b6114f3836114ee66016bcc41e90000612e3c565b612ff6565b80836020018181516115059190613ff7565b905250600085815260136020908152604091829020855181559085015160018201559084015160028201556060840151600382015560808401516004909101805460ff191691151591909117905561156661155f866115a3565b8587612ccb565b60405185906001600160a01b038616907fa5ee7a2b0254fce91deed604506790ed7fa072d0b14cba4859c3bc8955b9caac90600090a35050505050565b6000818152600260205260408120546001600160a01b031680610b095760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c3c565b60008061160f34613037565b9050670de0b6b3a764000081121561163d57604051633e0432ef60e01b815260048101829052602401610c3c565b60008061164985613089565b602081810195865260016080830181815260008581526013909352604092839020845181559751918801919091559082015160028701556060909101516003860155516004909401805460ff19169415159490941790935550909392505050565b60006001600160a01b0382166117145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610c3c565b506001600160a01b031660009081526003602052604090205490565b6000826001600160a01b0316611745856115a3565b6001600160a01b03160361175b575060016117e0565b60008481526014602090815260408083206001600160a01b038716845282529182902082518084019093525460ff81168084526101009091046001600160f81b0316918301919091526117ae908461305c565b80156117dc575080602001516001600160f81b03166013600087815260200190815260200160002060030154105b9150505b9392505050565b8060016117f5823383611730565b61181657818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600083815260136020526040812060040154849160ff9091161515900361185357604051632080e3d360e01b815260048101829052602401610c3c565b60008481526013602052604090206002015415611886576040516339d0e29960e01b815260048101859052602401610c3c565b600084815260136020526040812060010154136118b957604051632449a18d60e01b815260048101859052602401610c3c565b60008481526013602052604090819020600401805460ff19169055517fed48e4e899b34abded07dd8f092a22585a3fdec7db6b83f3927af165bf04cb1e906119049086815260200190565b60405180910390a150505050565b823361191d826115a3565b6001600160a01b0316146119475760405163d64dfb0160e01b815260048101829052602401610c3c565b4360005b83811015611a2757600085858381811061196757611967614077565b905060200281019061197991906140f1565b61198290614111565b90508060200151516000036119ba57600087815260146020908152604080832084516001600160a01b03168452909152812055611a1e565b60405180604001604052806119d28360200151613178565b60ff90811682526001600160f81b0380871660209384015260008b815260148452604080822087516001600160a01b031683528552902084519490930151166101000292169190911790555b5060010161194b565b507f5015559e4f379aa0dd2effee572c916b09bb68ed41ad9ab127c8066f052e1643858585604051611a5b939291906141d9565b60405180910390a15050505050565b606060018054610b1e90613f61565b611a843383836131c6565b5050565b600081815260136020526040812060040154829060ff1615158203611ac357604051632080e3d360e01b815260048101829052602401610c3c565b601754604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3191906142e9565b905080600003611b5457604051632a8ef6b160e11b815260040160405180910390fd5b610258601254611b649190614064565b421015611b84576040516334490f5560e11b815260040160405180910390fd5b6000611b8e613294565b90506000611bab600b5483611ba39190614302565b600b5461330c565b90506000611bb882613330565b905066038d7ea4c68000811015611be55760405163e746612160e01b815260048101839052602401610c3c565b42601255600b839055600e8054600f55439055600c54600d55611c10611c0a85613347565b836133b1565b600c55600087815260136020908152604091829020825160a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260049091015460ff1615156080820152611c80816114ee611c7b8566016bcc41e90000614064565b612e3c565b600088815260136020908152604091829020835181558382015160018201558383015160028201556060840151600382015560808401516004909101805460ff191691151591909117905590518981527fff14d8520387b9b85d2a017dc41ae15db04a22d4c67deac04eb45048631ffa86910160405180910390a1600c54965050505050505b50919050565b806000611d1a823383611730565b611d3b57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600083815260136020526040902060040154839060ff161515600103611d77576040516307e1313160e11b815260048101829052602401610c3c565b60008481526013602052604090819020600401805460ff19166001179055517f3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce906119049086815260200190565b611dcf3383612c4d565b611deb5760405162461bcd60e51b8152600401610c3c90614017565b611df7848484846133d6565b50505050565b6060611e0882612b7d565b6000611e1f60408051602081019091526000815290565b90506000815111611e3f57604051806020016040528060008152506117e0565b80611e4984613409565b604051602001611e5a929190614329565b6040516020818303038152906040529392505050565b6000600a54600114611eb15760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610c3c565b6002600a55836006611ec4823383611730565b611ee557818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600086815260136020526040812060040154879160ff90911615159003611f2257604051632080e3d360e01b815260048101829052602401610c3c565b60008781526013602052604090206002810154861115611f5857604051630b32a9c760e21b815260048101879052602401610c3c565b6002810180548790039055601754604051632770a7eb60e21b8152336004820152602481018890526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015611faf57600080fd5b505af1158015611fc3573d6000803e3d6000fd5b505050506000611fd9611fd4613294565b61349c565b611fe7886305f5e100614358565b611ff1919061436f565b90506000886001600160a01b03168260405160006040518083038185875af1925050503d8060008114612040576040519150601f19603f3d011682016040523d82523d6000602084013e612045565b606091505b505090508061207057604051637eaf0ff960e11b815233600482015260248101839052604401610c3c565b6040518881528a9033907ff3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec2629060200160405180910390a3506001600a5598975050505050505050565b600082815260136020526040812060040154839060ff16151582036120f457604051632080e3d360e01b815260048101829052602401610c3c565b600083815260136020526040812060040154849160ff9091161515900361213157604051632080e3d360e01b815260048101829052602401610c3c565b6000858152601560209081526040808320600f54845290915290205460ff161561217c57600f54604051630cff449b60e21b8152610c3c918791600401918252602082015260400190565b6001601560008781526020019081526020016000206000600f54815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601360008781526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff16151515158152505090506000601360008781526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815250509050600080600d541315612318576122a1600d548460000151612ed1565b90506122c6816122c1670853a0d2313c0000670de0b6b3a7640000614302565b6133b1565b836020018181516122d79190613ff7565b9052506122ec81670853a0d2313c00006133b1565b826020018181516122fd9190613ff7565b905250612313826114ee65b5e620f48000612e3c565b612366565b600061232a600d548560000151612f16565b6020860180519294509092508391612343908390613ff7565b9052506123508482612ff6565b612364836114ee660110d9316ec000612e3c565b505b82601360008a81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555090505081601360008981526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555090505086887f0e7d191e2306ac0b4fbf5a2cb60c28ddb5a0507bd6dc06322d0d1ea0925eabd78360405161245791815260200190565b60405180910390a3945050505b505092915050565b600082600361247c823383611730565b61249d57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600085815260136020526040812060040154869160ff909116151590036124da57604051632080e3d360e01b815260048101829052602401610c3c565b600086815260166020908152604080832043905560139091529020600281015486111561251d57604051630b32a9c760e21b815260048101879052602401610c3c565b600281018054879003905561253186613347565b8160010160008282546125449190613ff7565b90915550506017546040516323b872dd60e01b8152336004820152306024820152604481018890526000916001600160a01b0316906323b872dd906064016020604051808303816000875af11580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c59190614391565b9050806125d157600080fd5b601754604051632770a7eb60e21b8152306004820152602481018990526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b15801561261d57600080fd5b505af1158015612631573d6000803e3d6000fd5b50505050877f06da3309189fa49284f335d2c2bcb4cb0b8ad2a59ad92a9bdebeeb8f1ceba5118860405161266791815260200190565b60405180910390a250949695505050505050565b600083600561268b823383611730565b6126ac57818160405163acb8d02d60e01b8152600401610c3c929190613fcd565b600086815260136020526040812060040154879160ff909116151590036126e957604051632080e3d360e01b815260048101829052602401610c3c565b60008781526016602052604090205443900361271a5760405163194af33f60e21b8152436004820152602401610c3c565b6000878152601360205260409020600181015461273687613347565b131561275d57806001015460405163689b65e960e11b8152600401610c3c91815260200190565b600061276a611fd4613294565b6127786305f5e1004761436f565b6127829190614358565b9050600061281288601760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280191906142e9565b61280b9190614064565b83906134ee565b90506714d1120d7b1600008110156128405760405163f51aaf6560e01b815260048101829052602401610c3c565b600061284b60085490565b612855908461436f565b905060008985600201546128699190614064565b90508181111561288f57604051630dd16eb960e41b815260048101839052602401610c3c565b6128988a613347565b600186018054919091039055600285018190556017546040516340c10f1960e01b81526001600160a01b038d81166004830152602482018d9052909116906340c10f1990604401600060405180830381600087803b1580156128f957600080fd5b505af115801561290d573d6000803e3d6000fd5b505050508a6001600160a01b03168c7fcf7d23a3cbe4e8b36ff82fd1b05b1b17373dc7804b4ebbd6e2356716ef2023728c60405161294d91815260200190565b60405180910390a350979a9950505050505050505050565b61297184848484612aa5565b60018111156129e05760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610c3c565b816001600160a01b038516612a3c57612a3781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612a5f565b836001600160a01b0316856001600160a01b031614612a5f57612a5f8582613503565b6001600160a01b038416612a7b57612a76816135a0565b612a9e565b846001600160a01b0316846001600160a01b031614612a9e57612a9e848261364f565b5050505050565b6001811115611df7576001600160a01b03841615612aeb576001600160a01b03841660009081526003602052604081208054839290612ae59084906143ae565b90915550505b6001600160a01b03831615611df7576001600160a01b03831660009081526003602052604081208054839290612b22908490614064565b909155505050505050565b60006001600160e01b031982166380ac58cd60e01b1480612b5e57506001600160e01b03198216635b5e139f60e01b145b80610b0957506301ffc9a760e01b6001600160e01b0319831614610b09565b6000818152600260205260409020546001600160a01b0316612bdc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c3c565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612c14826115a3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612c59836115a3565b9050806001600160a01b0316846001600160a01b03161480612ca057506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806114275750836001600160a01b0316612cb984610ba1565b6001600160a01b031614949350505050565b826001600160a01b0316612cde826115a3565b6001600160a01b031614612d045760405162461bcd60e51b8152600401610c3c906143c1565b6001600160a01b038216612d665760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c3c565b612d738383836001613693565b826001600160a01b0316612d86826115a3565b6001600160a01b031614612dac5760405162461bcd60e51b8152600401610c3c906143c1565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000662386f26fc10000612ec783601760009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec191906142e9565b906136b9565b610b09919061436f565b600080612ee9601054846134ee90919063ffffffff16565b90506000841215612f0957612f0681670de0b6b3a76400006143ae565b90505b611427846122c183613347565b6000806000612f30601154856134ee90919063ffffffff16565b90506000612f49601054866134ee90919063ffffffff16565b90506000612f5783836134ee565b90506000612f6d84670de0b6b3a76400006143ae565b90506000612fa9612fa484612f8160085490565b612f9390670de0b6b3a7640000614358565b612f9d91906143ae565b84906134ee565b613347565b90506000612fb7828b6133b1565b90506000612fce87612fc884613330565b906134ee565b905081612fe3670de0b6b3a76400008361436f565b98509850505050505050505b9250929050565b80826000018181516130089190614064565b9052506011548251111561301c5781516011555b806010600082825461302e9190614064565b90915550505050565b6000613041613294565b613052612fa46305f5e1008561436f565b610b0991906140c1565b60008082600781111561307157613071613f95565b600160ff9182161b9490941690931615159392505050565b60006130bf6040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b60006130ca60085490565b90506107d081106130ee5760405163794bb39b60e01b815260040160405180910390fd5b6130f884826136ce565b61312c6040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b613138816103e8612ff6565b60405182906001600160a01b038716907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe90600090a39094909350915050565b6000805b8251811015611d065782818151811061319757613197614077565b602002602001015160078111156131b0576131b0613f95565b600160ff9190911681901b92909217910161317c565b816001600160a01b0316836001600160a01b0316036132275760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c3c565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60185460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa1580156132de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133029190614420565b5091949350505050565b670de0b6b3a764000082810290810583148215151661332a57600080fd5b05919050565b6000808212156133435781600003610b09565b5090565b60006001600160ff1b038211156133435760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610c3c565b81810282158382058314176133c557600080fd5b670de0b6b3a7640000900592915050565b6133e1848484612ccb565b6133ed84848484613867565b611df75760405162461bcd60e51b8152600401610c3c90614470565b6060600061341683613965565b600101905060008167ffffffffffffffff81111561343657613436613de2565b6040519080825280601f01601f191660200182016040528015613460576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461346a57509392505050565b6000808212156133435760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610c3c565b60006117e083670de0b6b3a764000084613a3d565b60006001613510846116aa565b61351a91906143ae565b60008381526007602052604090205490915080821461356d576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906135b2906001906143ae565b600083815260096020526040812054600880549394509092849081106135da576135da614077565b9060005260206000200154905080600883815481106135fb576135fb614077565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613633576136336144c2565b6001900381819060005260206000200160009055905550505050565b600061365a836116aa565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b61369f84848484612965565b506000908152601360205260409020436003909101555050565b60006117e08383670de0b6b3a7640000613a3d565b6001600160a01b0382166137245760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c3c565b6000818152600260205260409020546001600160a01b0316156137895760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c3c565b613797600083836001613693565b6000818152600260205260409020546001600160a01b0316156137fc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c3c565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561395d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906138ab9033908990889088906004016144d8565b6020604051808303816000875af19250505080156138e6575060408051601f3d908101601f191682019092526138e391810190614515565b60015b613943573d808015613914576040519150601f19603f3d011682016040523d82523d6000602084013e613919565b606091505b50805160000361393b5760405162461bcd60e51b8152600401610c3c90614470565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611427565b506001611427565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106139a45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106139d0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106139ee57662386f26fc10000830492506010015b6305f5e1008310613a06576305f5e100830492506008015b6127108310613a1a57612710830492506004015b60648310613a2c576064830492506002015b600a8310610b095760010192915050565b6000826000190484118302158202613a5457600080fd5b5091020490565b60008060408385031215613a6e57600080fd5b50508035926020909101359150565b6001600160e01b031981168114612bdc57600080fd5b600060208284031215613aa557600080fd5b81356117e081613a7d565b60005b83811015613acb578181015183820152602001613ab3565b50506000910152565b60008151808452613aec816020860160208601613ab0565b601f01601f19169290920160200192915050565b6020815260006117e06020830184613ad4565b600060208284031215613b2557600080fd5b5035919050565b80356001600160a01b0381168114613b4357600080fd5b919050565b60008060408385031215613b5b57600080fd5b613b6483613b2c565b946020939093013593505050565b600080600060608486031215613b8757600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215613bb357600080fd5b613bbc84613b2c565b9250613bca60208501613b2c565b9150604084013590509250925092565b60008060408385031215613bed57600080fd5b82359150613bfd60208401613b2c565b90509250929050565b60008083601f840112613c1857600080fd5b50813567ffffffffffffffff811115613c3057600080fd5b6020830191508360208260051b8501011115612fef57600080fd5b60008060008060608587031215613c6157600080fd5b84359350613c7160208601613b2c565b9250604085013567ffffffffffffffff811115613c8d57600080fd5b613c9987828801613c06565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015613cdf578351151583529284019291840191600101613cc1565b50909695505050505050565b600060208284031215613cfd57600080fd5b6117e082613b2c565b803560088110613b4357600080fd5b600080600060608486031215613d2a57600080fd5b83359250613d3a60208501613b2c565b9150613d4860408501613d06565b90509250925092565b600080600060408486031215613d6657600080fd5b83359250602084013567ffffffffffffffff811115613d8457600080fd5b613d9086828701613c06565b9497909650939450505050565b8015158114612bdc57600080fd5b60008060408385031215613dbe57600080fd5b613dc783613b2c565b91506020830135613dd781613d9d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613e1b57613e1b613de2565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613e4a57613e4a613de2565b604052919050565b60008060008060808587031215613e6857600080fd5b613e7185613b2c565b93506020613e80818701613b2c565b935060408601359250606086013567ffffffffffffffff80821115613ea457600080fd5b818801915088601f830112613eb857600080fd5b813581811115613eca57613eca613de2565b613edc601f8201601f19168501613e21565b91508082528984828501011115613ef257600080fd5b808484018584013760008482840101525080935050505092959194509250565b600080600060608486031215613f2757600080fd5b83359250613bca60208501613b2c565b60008060408385031215613f4a57600080fd5b613f5383613b2c565b9150613bfd60208401613b2c565b600181811c90821680613f7557607f821691505b602082108103611d0657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60088110613fc957634e487b7160e01b600052602160045260246000fd5b9052565b828152604081016117e06020830184613fab565b634e487b7160e01b600052601160045260246000fd5b808201828112600083128015821682158216171561246457612464613fe1565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b80820180821115610b0957610b09613fe1565b634e487b7160e01b600052603260045260246000fd5b60006001820161409f5761409f613fe1565b5060010190565b6000602082840312156140b857600080fd5b6117e082613d06565b80820260008212600160ff1b841416156140dd576140dd613fe1565b8181058314821517610b0957610b09613fe1565b60008235603e1983360301811261410757600080fd5b9190910192915050565b60006040823603121561412357600080fd5b61412b613df8565b61413483613b2c565b815260208084013567ffffffffffffffff8082111561415257600080fd5b9085019036601f83011261416557600080fd5b81358181111561417757614177613de2565b8060051b9150614188848301613e21565b81815291830184019184810190368411156141a257600080fd5b938501935b838510156141c7576141b885613d06565b825293850193908501906141a7565b94860194909452509295945050505050565b8381526040602080830182905282820184905260009190606090818501600587811b8701840189875b8a8110156142d857898303605f190185528135368d9003603e1901811261422857600080fd5b8c018389016001600160a01b0361423e83613b2c565b16855287820135601e1983360301811261425757600080fd5b90910187810191903567ffffffffffffffff81111561427557600080fd5b80871b360383131561428657600080fd5b8589018b9052908190526000908986015b818310156142c3576142b1816142ac86613d06565b613fab565b92890192600192909201918901614297565b97890197955050509186019150600101614202565b50909b9a5050505050505050505050565b6000602082840312156142fb57600080fd5b5051919050565b818103600083128015838313168383128216171561432257614322613fe1565b5092915050565b6000835161433b818460208801613ab0565b83519083019061434f818360208801613ab0565b01949350505050565b8082028115828204841417610b0957610b09613fe1565b60008261438c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156143a357600080fd5b81516117e081613d9d565b81810381811115610b0957610b09613fe1565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b805169ffffffffffffffffffff81168114613b4357600080fd5b600080600080600060a0868803121561443857600080fd5b61444186614406565b945060208601519350604086015192506060860151915061446460808701614406565b90509295509295909350565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061450b90830184613ad4565b9695505050505050565b60006020828403121561452757600080fd5b81516117e081613a7d56fea26469706673582212200ffb074479914c4e81c8a2c70e09d99a2171d0626cb710ff1509bb489ba5ddb364736f6c63430008110033", + "sourceMap": "764:18244:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3435:69;;;;;;;;;;-1:-1:-1;3435:69:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14:50;;425:22;407:41;;395:2;380:18;3435:69:40;;;;;;;;1005:222:17;;;;;;;;;;-1:-1:-1;1005:222:17;;;;;:::i;:::-;;:::i;2471:98:14:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;;;;;-1:-1:-1;3935:167:14;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1950:32:50;;;1932:51;;1920:2;1905:18;3935:167:14;1786:203:50;3468:406:14;;;;;;;;;;-1:-1:-1;3468:406:14;;;;;:::i;:::-;;:::i;:::-;;1360:63:40;;;;;;;;;;;;1413:10;1360:63;;;;;2577:25:50;;;2565:2;2550:18;1360:63:40;2431:177:50;2500:19:40;;;;;;;;;;;;;;;;2624:26;;;;;;;;;;;;;;;;1630:111:17;;;;;;;;;;-1:-1:-1;1717:10:17;:17;1630:111;;1855:55:40;;;;;;;;;;;;1901:9;1855:55;;8437:536;;;;;;;;;;-1:-1:-1;8437:536:40;;;;;:::i;:::-;;:::i;4612:326:14:-;;;;;;;;;;-1:-1:-1;4612:326:14;;;;;:::i;:::-;;:::i;2169:21:40:-;;;;;;;;;;;;;;;;1306:253:17;;;;;;;;;;-1:-1:-1;1306:253:17;;;;;:::i;:::-;;:::i;1615:55:40:-;;;;;;;;;;;;1661:9;1615:55;;1094:57;;;;;;;;;;;;1147:4;1094:57;;1184:60;;;;;;;;;;;;1237:7;1184:60;;3319:75;;;;;;;;;;-1:-1:-1;3319:75:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3319:75:40;;;;;;;3905:4:50;3893:17;;;3875:36;;-1:-1:-1;;;;;3947:32:50;;;3942:2;3927:18;;3920:60;3848:18;3319:75:40;3705:281:50;12075:656:40;;;;;;;;;;-1:-1:-1;12075:656:40;;;;;:::i;:::-;;:::i;1428:57::-;;;;;;;;;;;;1481:4;1428:57;;2561:17;;;;;;;;;;;;;;;;5004:179:14;;;;;;;;;;-1:-1:-1;5004:179:14;;;;;:::i;:::-;;:::i;3250:65:40:-;;;;;;;;;;-1:-1:-1;3250:65:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4242:25:50;;;4298:2;4283:18;;4276:34;;;;4326:18;;;4319:34;;;;4384:2;4369:18;;4362:34;4440:14;4433:22;4427:3;4412:19;;4405:51;4229:3;4214:19;3250:65:40;3991:471:50;1775:55:40;;;;;;;;;;;;1821:9;1775:55;;1813:230:17;;;;;;;;;;-1:-1:-1;1813:230:17;;;;;:::i;:::-;;:::i;7399:321:40:-;;;;;;:::i;:::-;;:::i;16188:876::-;;;;;;;;;;-1:-1:-1;16188:876:40;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13846:539::-;;;;;;:::i;:::-;;:::i;2190:219:14:-;;;;;;;;;;-1:-1:-1;2190:219:14;;;;;:::i;:::-;;:::i;6660:350:40:-;;;;;;:::i;:::-;;:::i;2094:24::-;;;;;;;;;;;;;;;;1929:204:14;;;;;;;;;;-1:-1:-1;1929:204:14;;;;;:::i;:::-;;:::i;15645:539:40:-;;;;;;;;;;-1:-1:-1;15645:539:40;;;;;:::i;:::-;;:::i;14602:293::-;;;;;;;;;;-1:-1:-1;14602:293:40;;;;;:::i;:::-;;:::i;14933:708::-;;;;;;;;;;-1:-1:-1;14933:708:40;;;;;:::i;:::-;;:::i;2633:102:14:-;;;;;;;;;;;;;:::i;2015:53:40:-;;;;;;;;;;;;2061:7;2015:53;;4169:153:14;;;;;;;;;;-1:-1:-1;4169:153:14;;;;;:::i;:::-;;:::i;3657:16:40:-;;;;;;;;;;-1:-1:-1;3657:16:40;;;;-1:-1:-1;;;;;3657:16:40;;;10917:1109;;;;;;;;;;-1:-1:-1;10917:1109:40;;;;;:::i;:::-;;:::i;14417:153::-;;;;;;;;;;-1:-1:-1;14417:153:40;;;;;:::i;:::-;;:::i;5249:314:14:-;;;;;;;;;;-1:-1:-1;5249:314:14;;;;;:::i;:::-;;:::i;1935:55:40:-;;;;;;;;;;;;1981:9;1935:55;;2801:276:14;;;;;;;;;;-1:-1:-1;2801:276:14;;;;;:::i;:::-;;:::i;1506:50:40:-;;;;;;;;;;;;1552:4;1506:50;;2353:23;;;;;;;;;;;;;;;;10160:685;;;;;;;;;;-1:-1:-1;10160:685:40;;;;;:::i;:::-;;:::i;12793:1005::-;;;;;;;;;;-1:-1:-1;12793:1005:40;;;;;:::i;:::-;;:::i;2257:25::-;;;;;;;;;;;;;;;;7743:621;;;;;;;;;;-1:-1:-1;7743:621:40;;;;;:::i;:::-;;:::i;9014:1117::-;;;;;;;;;;-1:-1:-1;9014:1117:40;;;;;:::i;:::-;;:::i;3548:81::-;;;;;;;;;;-1:-1:-1;3548:81:40;;;;;:::i;:::-;;;;;;;;;;;;;;2426:27;;;;;;;;;;;;;;;;1272:61;;;;;;;;;;;;1325:8;1272:61;;4388:162:14;;;;;;;;;;-1:-1:-1;4388:162:14;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:14;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1560:51:40;;;;;;;;;;;;1606:5;1560:51;;1005:222:17;1107:4;-1:-1:-1;;;;;;1130:50:17;;-1:-1:-1;;;1130:50:17;;:90;;;1184:36;1208:11;1184:23;:36::i;:::-;1123:97;1005:222;-1:-1:-1;;1005:222:17:o;2471:98:14:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:14;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:14;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:14;:2;-1:-1:-1;;;;;3605:11:14;;3597:57;;;;-1:-1:-1;;;3597:57:14;;10861:2:50;3597:57:14;;;10843:21:50;10900:2;10880:18;;;10873:30;10939:34;10919:18;;;10912:62;-1:-1:-1;;;10990:18:50;;;10983:31;11031:19;;3597:57:14;;;;;;;;;719:10:21;-1:-1:-1;;;;;3686:21:14;;;;:62;;-1:-1:-1;3711:37:14;3728:5;719:10:21;4388:162:14;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:14;;11263:2:50;3665:170:14;;;11245:21:50;11302:2;11282:18;;;11275:30;11341:34;11321:18;;;11314:62;11412:31;11392:18;;;11385:59;11461:19;;3665:170:14;11061:425:50;3665:170:14;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;8437:536:40:-;8582:3;8533:5;8540:15;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;8566:5;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;8613:1:::2;8603:7;:11;8595:20;;;::::0;::::2;;8668:16;8687:14:::0;;;:7:::2;:14;::::0;;;;8723:12:::2;::::0;::::2;::::0;8713:22;::::2;8709:75;;;8768:4;:12;;;8746:35;;-1:-1:-1::0;;;8746:35:40::2;;;;;;2577:25:50::0;;2565:2;2550:18;;2431:177;8709:75:40::2;8809:12;::::0;;::::2;:31:::0;;;;::::2;::::0;;:12:::2;8876::::0;;;:7:::2;:12;::::0;;;;:20;;::::2;:31:::0;;8833:7;;8809:12;8876:31:::2;::::0;8833:7;;8876:31:::2;:::i;:::-;::::0;;;-1:-1:-1;;8920:26:40::2;::::0;2577:25:50;;;8933:3:40;;8926:5;;8920:26:::2;::::0;2565:2:50;2550:18;8920:26:40::2;;;;;;;-1:-1:-1::0;8961:7:40;;8437:536;-1:-1:-1;;;;;;8437:536:40:o;4612:326:14:-;4801:41;719:10:21;4834:7:14;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:14;;;;;;;:::i;:::-;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;1306:253:17:-;1403:7;1438:23;1455:5;1438:16;:23::i;:::-;1430:5;:31;1422:87;;;;-1:-1:-1;;;1422:87:17;;13122:2:50;1422:87:17;;;13104:21:50;13161:2;13141:18;;;13134:30;13200:34;13180:18;;;13173:62;-1:-1:-1;;;13251:18:50;;;13244:41;13302:19;;1422:87:17;12920:407:50;1422:87:17;-1:-1:-1;;;;;;1526:19:17;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;1306:253::o;12075:656:40:-;12167:3;12123:2;12127:16;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;12154:2;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;12184:15:::2;::::0;;;:11:::2;:15;::::0;;;;;;;12200:11:::2;::::0;12184:28;;;;;;;;::::2;;12180:77;;;12242:11;::::0;12223:31:::2;::::0;-1:-1:-1;;;12223:31:40;;::::2;::::0;12238:2;;12223:31:::2;;13506:25:50::0;;;13562:2;13547:18;;13540:34;13494:2;13479:18;;13332:248;12180:77:40::2;12264:15;::::0;;;:11:::2;:15;::::0;;;;;;;12280:11:::2;::::0;12264:28;;;;;;;:35;;-1:-1:-1;;12264:35:40::2;12295:4;12264:35:::0;;::::2;::::0;;;12324:11;;;:7:::2;:11:::0;;;;;12307:28;;::::2;::::0;::::2;::::0;;;;;;;;::::2;::::0;;;::::2;::::0;;;;::::2;::::0;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;;::::2;::::0;12264:35:::2;12307:28;;;::::0;;;;;12264:15;12374:30:::2;1981:9;12374:13;:30::i;:::-;12361:43;;12428:1;12416:9;;:13;12412:185;;;12449:31;12462:9;;12473:3;:6;;;12449:12;:31::i;:::-;12441:39;;12412:185;;;12505:7;12536:31;12549:9;;12560:3;:6;;;12536:12;:31::i;:::-;12522:45:::0;;-1:-1:-1;12522:45:40;-1:-1:-1;12577:11:40::2;12522:45:::0;12577:11;::::2;:::i;:::-;;;12495:102;12412:185;12619:5;12604:3;:11;;:20;;;;;;;:::i;:::-;::::0;;-1:-1:-1;12632:18:40::2;12639:3:::0;12644:5;12632:6:::2;:18::i;:::-;12658:11;::::0;;;:7:::2;:11;::::0;;;;;;;;:17;;;;;;::::2;::::0;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;;::::2;::::0;;-1:-1:-1;;12658:17:40::2;::::0;::::2;;::::0;;;::::2;::::0;;12688:18;;2577:25:50;;;12658:11:40;;12688:18:::2;::::0;2550::50;12688::40::2;;;;;;;-1:-1:-1::0;12721:5:40;12075:656;-1:-1:-1;;;;;;12075:656:40:o;5004:179:14:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;1813:230:17:-;1888:7;1923:30;1717:10;:17;;1630:111;1923:30;1915:5;:38;1907:95;;;;-1:-1:-1;;;1907:95:17;;13917:2:50;1907:95:17;;;13899:21:50;13956:2;13936:18;;;13929:30;13995:34;13975:18;;;13968:62;-1:-1:-1;;;14046:18:50;;;14039:42;14098:19;;1907:95:17;13715:408:50;1907:95:17;2019:10;2030:5;2019:17;;;;;;;;:::i;:::-;;;;;;;;;2012:24;;1813:230;;;:::o;7399:321:40:-;7505:3;7450:2;7454:19;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;7484:2;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;7518:27:::2;::::0;;;:23:::2;:27;::::0;;;;7548:12:::2;7518:42:::0;;7591:20:::2;7601:9;7591;:20::i;:::-;7568:43;;7642:10;7619:7;:11;7627:2;7619:11;;;;;;;;;;;:19;;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7665:25:40::2;::::0;2577::50;;;7675:2:40;;7665:25:::2;::::0;2565:2:50;2550:18;7665:25:40::2;;;;;;;7705:10:::0;7399:321;-1:-1:-1;;;;;7399:321:40:o;16188:876::-;16322:29;16390:11;16379:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16379:30:40;;16361:48;;16436:8;-1:-1:-1;;;;;16421:23:40;:11;16429:2;16421:7;:11::i;:::-;-1:-1:-1;;;;;16421:23:40;;16417:643;;16511:9;16506:97;16526:22;;;16506:97;;;16588:4;16567:15;16583:1;16567:18;;;;;;;;:::i;:::-;:25;;;:18;;;;;;;;;;;:25;16550:3;;;;:::i;:::-;;;;16506:97;;;;16417:643;;;16691:35;16729:21;;;:17;:21;;;;;;;;-1:-1:-1;;;;;16729:31:40;;;;;;;;;16691:69;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16691:69:40;;;;;;;16774:11;;;:7;:11;;;;;:31;;;:60;16770:282;;;16853:9;16848:194;16868:22;;;16848:194;;;16915:57;16957:11;;16969:1;16957:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16915:26;;:41;;;;:57::i;:::-;16911:119;;;17011:4;16990:15;17006:1;16990:18;;;;;;;;:::i;:::-;:25;;;:18;;;;;;;;;;;:25;16911:119;16892:3;;;;:::i;:::-;;;;16848:194;;;;16770:282;16617:443;16417:643;16188:876;;;;;;:::o;13846:539::-;13929:14;13946:11;;;:7;:11;;;;;;;;13929:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14017:13;;14013:50;;14041:19;;-1:-1:-1;;;14041:19:40;;;;;2577:25:50;;;2550:18;;14041:19:40;2431:177:50;14013:50:40;14070:11;14084:20;14094:9;14084;:20::i;:::-;14070:34;-1:-1:-1;14126:11:40;:8;-1:-1:-1;;14126:11:40;:::i;:::-;14116:7;:21;14112:79;;;14148:40;;-1:-1:-1;;;14148:40:40;;;;;2577:25:50;;;2550:18;;14148:40:40;2431:177:50;14112:79:40;14198:49;14205:3;14210:36;1741:9;14210:13;:36::i;:::-;14198:6;:49::i;:::-;14270:7;14255:3;:11;;:22;;;;;;;:::i;:::-;;;-1:-1:-1;14286:11:40;;;;:7;:11;;;;;;;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14286:18:40;;;;;;;;;;14317:30;14327:11;14286;14327:7;:11::i;:::-;14340:2;14344;14317:9;:30::i;:::-;14360:19;;14376:2;;-1:-1:-1;;;;;14360:19:40;;;;;;;;13921:464;;;13846:539;;:::o;2190:219:14:-;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:14;;2324:56;;;;-1:-1:-1;;;2324:56:14;;15059:2:50;2324:56:14;;;15041:21:50;15098:2;15078:18;;;15071:30;-1:-1:-1;;;15117:18:50;;;15110:54;15181:18;;2324:56:14;14857:348:50;6660:350:40;6712:4;6726:11;6741:20;6751:9;6741;:20::i;:::-;6726:35;;1481:4;6773:7;:31;6769:88;;;6815:39;;-1:-1:-1;;;6815:39:40;;;;;2577:25:50;;;2550:18;;6815:39:40;2431:177:50;6769:88:40;6865:7;6874:14;6892:12;6901:2;6892:8;:12::i;:::-;6913:11;;;;:22;;;6958:4;6943:12;;;:19;;;-1:-1:-1;6970:11:40;;;:7;:11;;;;;;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6970:18:40;;;;;;;;;;;-1:-1:-1;6970:11:40;;6864:40;-1:-1:-1;;;6660:350:40:o;1929:204:14:-;2001:7;-1:-1:-1;;;;;2028:19:14;;2020:73;;;;-1:-1:-1;;;2020:73:14;;15412:2:50;2020:73:14;;;15394:21:50;15451:2;15431:18;;;15424:30;15490:34;15470:18;;;15463:62;-1:-1:-1;;;15541:18:50;;;15534:39;15590:19;;2020:73:14;15210:405:50;2020:73:14;-1:-1:-1;;;;;;2110:16:14;;;;;:9;:16;;;;;;;1929:204::o;15645:539:40:-;15764:4;15797:8;-1:-1:-1;;;;;15782:23:40;:11;15790:2;15782:7;:11::i;:::-;-1:-1:-1;;;;;15782:23:40;;15778:45;;-1:-1:-1;15816:4:40;15809:11;;15778:45;15830:35;15868:21;;;:17;:21;;;;;;;;-1:-1:-1;;;;;15868:31:40;;;;;;;;;;15830:69;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15830:69:40;;;;;;;;15914:53;;15956:10;15914:41;:53::i;:::-;:265;;;;;16153:14;:26;;;-1:-1:-1;;;;;16119:60:40;:7;:11;16127:2;16119:11;;;;;;;;;;;:31;;;:60;15914:265;15907:272;;;15645:539;;;;;;:::o;14602:293::-;14655:2;14659:21;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;14691:2;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;14731:1:::2;14705:11:::0;;;:7:::2;:11;::::0;;;;:22:::2;;::::0;:27;14701:62:::2;;14741:22;::::0;-1:-1:-1;;;14741:22:40;;::::2;::::0;::::2;2577:25:50::0;;;2550:18;;14741:22:40::2;2431:177:50::0;14701:62:40::2;14799:1;14773:11:::0;;;:7:::2;:11;::::0;;;;:19:::2;;::::0;:27:::2;14769:61;;14809:21;::::0;-1:-1:-1;;;14809:21:40;;::::2;::::0;::::2;2577:25:50::0;;;2550:18;;14809:21:40::2;2431:177:50::0;14769:61:40::2;14859:5;14836:11:::0;;;:7:::2;:11;::::0;;;;;;:20:::2;;:28:::0;;-1:-1:-1;;14836:28:40::2;::::0;;14875:15;::::2;::::0;::::2;::::0;14844:2;2577:25:50;;2565:2;2550:18;;2431:177;14875:15:40::2;;;;;;;;5952:1:::1;14602:293:::0;;;:::o;14933:708::-;15038:3;5755:10;5740:11;15038:3;5740:7;:11::i;:::-;-1:-1:-1;;;;;5740:25:40;;5736:53;;5774:15;;-1:-1:-1;;;5774:15:40;;;;;2577:25:50;;;2550:18;;5774:15:40;2431:177:50;5736:53:40;15082:12:::1;15051:20;15103:491;15123:26:::0;;::::1;15103:491;;;15163:35;15201:15;;15217:1;15201:18;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;15163:56;;;:::i;:::-;;;15233:14;:26;;;:33;15270:1;15233:38:::0;15229:330:::1;;15292:22;::::0;;;:17:::1;:22;::::0;;;;;;;15315:23;;-1:-1:-1;;;;;15292:47:40::1;::::0;;;;;;;15285:54;15229:330:::1;;;15418:130;;;;;;;;15459:37;:14;:26;;;:35;:37::i;:::-;15418:130;::::0;;::::1;::::0;;-1:-1:-1;;;;;15418:130:40;;::::1;;::::0;;::::1;::::0;-1:-1:-1;15368:22:40;;;:17:::1;:22:::0;;;;;;15391:23;;-1:-1:-1;;;;;15368:47:40::1;::::0;;;;;;:180;;;;;::::1;::::0;::::1;;;::::0;::::1;::::0;;;::::1;::::0;;15229:330:::1;-1:-1:-1::0;15580:3:40::1;;15103:491;;;;15606:30;15615:3;15620:15;;15606:30;;;;;;;;:::i;:::-;;;;;;;;15043:598;14933:708:::0;;;;:::o;2633:102:14:-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;719:10:21;4296:8:14;4306;4263:18;:52::i;:::-;4169:153;;:::o;10917:1109:40:-;10971:3;5998:11;;;:7;:11;;;;;:20;;;10958:2;;5998:20;;:29;;;;5994:56;;6036:14;;-1:-1:-1;;;6036:14:40;;;;;2577:25:50;;;2550:18;;6036:14:40;2431:177:50;5994:56:40;11007:4:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;11007:18:40;;;;10984:20:::1;::::0;-1:-1:-1;;;;;11007:4:40::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:4;:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10984:41;;11092:15;11111:1;11092:20:::0;11088:59:::1;;11123:21;;-1:-1:-1::0;;;11123:21:40::1;;;;;;;;;;;11088:59;1413:10;11177:14;;:38;;;;:::i;:::-;11159:15;:56;11155:87;;;11226:13;;-1:-1:-1::0;;;11226:13:40::1;;;;;;;;;;;11155:87;11249:16;11271:20;:18;:20::i;:::-;11249:42;;11299:16;11321:48;11342:12;;11328:11;:26;;;;:::i;:::-;11356:12;;11321:6;:48::i;:::-;11299:70;;11378:19;11400:17;:11;:15;:17::i;:::-;11378:39;;1325:8;11429:14;:46;11425:96;;;11486:32;::::0;-1:-1:-1;;;11486:32:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;11486:32:40::1;2431:177:50::0;11425:96:40::1;11547:15;11528:14;:34:::0;11570:12:::1;:30:::0;;;11628:11:::1;::::0;;11609:15:::1;:30:::0;11692:12:::1;11673:31:::0;;11756:9:::1;::::0;11737:13:::1;:28:::0;11792:47:::1;11799:26;:15:::0;:24:::1;:26::i;:::-;11827:11;11792:6;:47::i;:::-;11773:9;:66:::0;11847:14:::1;11866:11:::0;;;:7:::1;:11;::::0;;;;;;;;11847:30;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;::::1;;;;::::0;;;;11885:59:::1;11847:30:::0;11897:46:::1;11911:31;11928:14:::0;1661:9:::1;11911:31;:::i;:::-;11897:13;:46::i;11885:59::-;11952:11;::::0;;;:7:::1;:11;::::0;;;;;;;;:22;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;11952:22:40::1;::::0;::::1;;::::0;;;::::1;::::0;;11987:10;;2577:25:50;;;11987:10:40::1;::::0;2550:18:50;11987:10:40::1;;;;;;;12012:9;;12005:16;;;;;;;6052:1;10917:1109:::0;;;;:::o;14417:153::-;14468:2;14472:19;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;6100:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;14504:2;;6100:20:::1;;:28;;:20:::0;:28;6096:53:::1;;6137:12;::::0;-1:-1:-1;;;6137:12:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6137:12:40::1;2431:177:50::0;6096:53:40::1;14514:11:::2;::::0;;;:7:::2;:11;::::0;;;;;;:20:::2;;:27:::0;;-1:-1:-1;;14514:27:40::2;14537:4;14514:27;::::0;;14552:13;::::2;::::0;::::2;::::0;14522:2;2577:25:50;;2565:2;2550:18;;2431:177;5249:314:14;5417:41;719:10:21;5450:7:14;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:14;;;;;;;:::i;:::-;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;3395:9;;;;;;;;;-1:-1:-1;3395:9:14;;;3319:92;2957:10;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2977:93;2801:276;-1:-1:-1;;;2801:276:14:o;10160:685:40:-;10320:4;512:6:34;;522:1;512:11;504:34;;;;-1:-1:-1;;;504:34:34;;20419:2:50;504:34:34;;;20401:21:50;20458:2;20438:18;;;20431:30;-1:-1:-1;;;20477:18:50;;;20470:40;20527:18;;504:34:34;20217:334:50;504:34:34;558:1;549:6;:10;10271:4:40;10277:17:::1;5867:41;10271:4:::0;5885:10:::1;10277:17:::0;5867:13:::1;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1::0;;;5917:33:40::1;;;;;;;;;:::i;5862:88::-;5998:11:::2;::::0;;;:7:::2;:11;::::0;;;;:20:::2;;::::0;10305:4;;5998:20:::2;::::0;;::::2;:29;;::::0;;5994:56:::2;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::2;::::0;::::2;2577:25:50::0;;;2550:18;;6036:14:40::2;2431:177:50::0;5994:56:40::2;10335:15:::3;10353:13:::0;;;:7:::3;:13;::::0;;;;10387:14:::3;::::0;::::3;::::0;10378:23;::::3;10374:73;;;10412:32;::::0;-1:-1:-1;;;10412:32:40;;::::3;::::0;::::3;2577:25:50::0;;;2550:18;;10412:32:40::3;2431:177:50::0;10374:73:40::3;10472:14;::::0;::::3;:24:::0;;;;::::3;::::0;;10534:4:::3;::::0;:29:::3;::::0;-1:-1:-1;;;10534:29:40;;10544:10:::3;10534:29;::::0;::::3;20730:51:50::0;20797:18;;;20790:34;;;-1:-1:-1;;;;;10534:4:40;;::::3;::::0;:9:::3;::::0;20703:18:50;;10534:29:40::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;10571:8;10595:32;:20;:18;:20::i;:::-;:30;:32::i;:::-;10582:10;:6:::0;10589:3:::3;10582:10;:::i;:::-;:45;;;;:::i;:::-;10571:56;;10636:12;10662:2;-1:-1:-1::0;;;;;10654:16:40::3;10678:3;10654:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10635:51;;;10721:7;10716:60;;10739:34;::::0;-1:-1:-1;;;10739:34:40;;10757:10:::3;10739:34;::::0;::::3;20730:51:50::0;20797:18;;;20790:34;;;20703:18;;10739:34:40::3;20556:274:50::0;10716:60:40::3;10788:34;::::0;2577:25:50;;;10809:4:40;;10797:10:::3;::::0;10788:34:::3;::::0;2565:2:50;2550:18;10788:34:40::3;;;;;;;-1:-1:-1::0;591:1:34;582:6;:10;10837:3:40;10160:685;-1:-1:-1;;;;;;;;10160:685:40:o;12793:1005::-;12894:3;5998:11;;;:7;:11;;;;;:20;;;12864:5;;5998:20;;:29;;;;5994:56;;6036:14;;-1:-1:-1;;;6036:14:40;;;;;2577:25:50;;;2550:18;;6036:14:40;2431:177:50;5994:56:40;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;12880:3;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;12911:18:::2;::::0;;;:11:::2;:18;::::0;;;;;;;12930:15:::2;::::0;12911:35;;;;;;;;::::2;;12907:90;;;12978:15;::::0;12957:37:::2;::::0;-1:-1:-1;;;12957:37:40;;::::2;::::0;12971:5;;12957:37:::2;;13506:25:50::0;;;13562:2;13547:18;;13540:34;13494:2;13479:18;;13332:248;12907:90:40::2;13042:4;13004:11;:18;13016:5;13004:18;;;;;;;;;;;:35;13023:15;;13004:35;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;13054:15;13072:7;:14;13080:5;13072:14;;;;;;;;;;;13054:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;13094:13;13112:7;:12;13120:3;13112:12;;;;;;;;;;;13094:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;13132:9;13169:1:::0;13153:13:::2;;:17;13149:531;;;13207:36;13220:13;;13235:4;:7;;;13207:12;:36::i;:::-;13191:52:::0;-1:-1:-1;13269:44:40::2;13191:52:::0;13283:29:::2;2061:7;13283:4;:29;:::i;:::-;13269:6;:44::i;:::-;13253:4;:12;;:60;;;;;;;:::i;:::-;::::0;;-1:-1:-1;13340:37:40::2;13347:5:::0;2061:7:::2;13340:6;:37::i;:::-;13324:2;:10;;:53;;;;;;;:::i;:::-;::::0;;-1:-1:-1;13388:46:40::2;13395:2:::0;13399:34:::2;1901:9;13399:13;:34::i;13388:46::-;13149:531;;;13483:7;13516:36;13529:13;;13544:4;:7;;;13516:12;:36::i;:::-;13562:12;::::0;::::2;:21:::0;;13502:50;;-1:-1:-1;13502:50:40;;-1:-1:-1;13502:50:40;;13562:21:::2;::::0;13502:50;;13562:21:::2;:::i;:::-;::::0;;-1:-1:-1;13599:16:40::2;13606:4:::0;13612:2;13599:6:::2;:16::i;:::-;13625:46;13632:2;13636:34;1821:9;13636:13;:34::i;13625:46::-;13449:231;13149:531;13704:4;13687:7;:14;13695:5;13687:14;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13733:2;13716:7;:12;13724:3;13716:12;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13762:3;13755:5;13748:25;13767:5;13748:25;;;;2577::50::0;;2565:2;2550:18;;2431:177;13748:25:40::2;;;;;;;;13788:5:::0;-1:-1:-1;;;6052:1:40::2;::::1;12793:1005:::0;;;;;:::o;7743:621::-;7868:4;7822:2;7826:18;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;7855:2;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;7883:27:::2;::::0;;;:23:::2;:27;::::0;;;;;;;7913:12:::2;7883:42:::0;;7951:7:::2;:11:::0;;;;;7983:14:::2;::::0;::::2;::::0;7974:23;::::2;7970:73;;;8008:32;::::0;-1:-1:-1;;;8008:32:40;;::::2;::::0;::::2;2577:25:50::0;;;2550:18;;8008:32:40::2;2431:177:50::0;7970:73:40::2;8068:14;::::0;::::2;:24:::0;;;;::::2;::::0;;8148:17:::2;8086:6:::0;8148:15:::2;:17::i;:::-;8130:3;:11;;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8188:4:40::2;::::0;:52:::2;::::0;-1:-1:-1;;;8188:52:40;;8206:10:::2;8188:52;::::0;::::2;21812:34:50::0;8226:4:40::2;21862:18:50::0;;;21855:43;21914:18;;;21907:34;;;8173:12:40::2;::::0;-1:-1:-1;;;;;8188:4:40::2;::::0;:17:::2;::::0;21747:18:50;;8188:52:40::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8173:67;;8256:7;8248:16;;;::::0;::::2;;8272:4;::::0;:32:::2;::::0;-1:-1:-1;;;8272:32:40;;8290:4:::2;8272:32;::::0;::::2;20730:51:50::0;20797:18;;;20790:34;;;-1:-1:-1;;;;;8272:4:40;;::::2;::::0;:9:::2;::::0;20703:18:50;;8272:32:40::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;8327:2;8317:21;8331:6;8317:21;;;;2577:25:50::0;;2565:2;2550:18;;2431:177;8317:21:40::2;;;;;;;;-1:-1:-1::0;8353:6:40;;7743:621;-1:-1:-1;;;;;;7743:621:40:o;9014:1117::-;9167:4;9116;9122:19;5867:41;5881:2;5885:10;5897;5867:13;:41::i;:::-;5862:88;;5935:2;5939:10;5917:33;;-1:-1:-1;;;5917:33:40;;;;;;;;;:::i;5862:88::-;5998:11:::1;::::0;;;:7:::1;:11;::::0;;;;:20:::1;;::::0;9152:4;;5998:20:::1;::::0;;::::1;:29;;::::0;;5994:56:::1;;6036:14;::::0;-1:-1:-1;;;6036:14:40;;::::1;::::0;::::1;2577:25:50::0;;;2550:18;;6036:14:40::1;2431:177:50::0;5994:56:40::1;9185:29:::2;::::0;;;:23:::2;:29;::::0;;;;;9218:12:::2;9185:45:::0;;9181:121:::2;;9250:49;::::0;-1:-1:-1;;;9250:49:40;;9286:12:::2;9250:49;::::0;::::2;2577:25:50::0;2550:18;;9250:49:40::2;2431:177:50::0;9181:121:40::2;9337:15;9355:13:::0;;;:7:::2;:13;::::0;;;;9400:11:::2;::::0;::::2;::::0;9380:17:::2;:6:::0;:15:::2;:17::i;:::-;:31;9376:83;;;9444:3;:11;;;9422:34;;-1:-1:-1::0;;;9422:34:40::2;;;;;;2577:25:50::0;;2565:2;2550:18;;2431:177;9376:83:40::2;9466:16;9516:32;:20;:18;:20::i;:32::-;9488:25;9510:3;9488:21;:25;:::i;:::-;:60;;;;:::i;:::-;9466:82;;9556:19;9578:51;9622:6;9601:4;;;;;;;;;-1:-1:-1::0;;;;;9601:4:40::2;-1:-1:-1::0;;;;;9601:16:40::2;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;9578:11:::0;;:22:::2;:51::i;:::-;9556:73;;1237:7;9641:14;:42;9637:84;;;9694:24;::::0;-1:-1:-1;;;9694:24:40;;::::2;::::0;::::2;2577:25:50::0;;;2550:18;;9694:24:40::2;2431:177:50::0;9637:84:40::2;9728:15;9763:13;1717:10:17::0;:17;;1630:111;9763:13:40::2;9749:27;::::0;:11;:27:::2;:::i;:::-;9728:48;;9784:18;9822:6;9805:3;:14;;;:23;;;;:::i;:::-;9784:44;;9856:10;9840:13;:26;9836:73;;;9877:29;::::0;-1:-1:-1;;;9877:29:40;;::::2;::::0;::::2;2577:25:50::0;;;2550:18;;9877:29:40::2;2431:177:50::0;9836:73:40::2;9952:17;:6;:15;:17::i;:::-;9934:11;::::0;::::2;:35:::0;;;;;::::2;::::0;;10004:14:::2;::::0;::::2;:31:::0;;;10044:4:::2;::::0;:21:::2;::::0;-1:-1:-1;;;10044:21:40;;-1:-1:-1;;;;;20748:32:50;;;10044:21:40::2;::::0;::::2;20730:51:50::0;20797:18;;;20790:34;;;10044:4:40;;::::2;::::0;:9:::2;::::0;20703:18:50;;10044:21:40::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10094:2;-1:-1:-1::0;;;;;10078:27:40::2;10088:4;10078:27;10098:6;10078:27;;;;2577:25:50::0;;2565:2;2550:18;;2431:177;10078:27:40::2;;;;;;;;-1:-1:-1::0;10120:6:40;;9014:1117;-1:-1:-1;;;;;;;;;;9014:1117:40:o;2112:890:17:-;2283:61;2310:4;2316:2;2320:12;2334:9;2283:26;:61::i;:::-;2371:1;2359:9;:13;2355:219;;;2500:63;;-1:-1:-1;;;2500:63:17;;22404:2:50;2500:63:17;;;22386:21:50;22443:2;22423:18;;;22416:30;22482:34;22462:18;;;22455:62;-1:-1:-1;;;22533:18:50;;;22526:51;22594:19;;2500:63:17;22202:417:50;2355:219:17;2602:12;-1:-1:-1;;;;;2629:18:17;;2625:183;;2663:40;2695:7;3811:10;:17;;3784:24;;;;:15;:24;;;;;:44;;;3838:24;;;;;;;;;;;;3708:161;2663:40;2625:183;;;2732:2;-1:-1:-1;;;;;2724:10:17;:4;-1:-1:-1;;;;;2724:10:17;;2720:88;;2750:47;2783:4;2789:7;2750:32;:47::i;:::-;-1:-1:-1;;;;;2821:16:17;;2817:179;;2853:45;2890:7;2853:36;:45::i;:::-;2817:179;;;2925:4;-1:-1:-1;;;;;2919:10:17;:2;-1:-1:-1;;;;;2919:10:17;;2915:81;;2945:40;2973:2;2977:7;2945:27;:40::i;:::-;2273:729;2112:890;;;;:::o;15698:396:14:-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:14;;;15899:85;;-1:-1:-1;;;;;15941:15:14;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:14;-1:-1:-1;;;;;16001:16:14;;;15997:81;;-1:-1:-1;;;;;16037:13:14;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:14;;;;:::o;1570:300::-;1672:4;-1:-1:-1;;;;;;1707:40:14;;-1:-1:-1;;;1707:40:14;;:104;;-1:-1:-1;;;;;;;1763:48:14;;-1:-1:-1;;;1763:48:14;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:23;;;1827:36:14;829:155:23;13466:133:14;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:14;13539:53;;;;-1:-1:-1;;;13539:53:14;;15059:2:50;13539:53:14;;;15041:21:50;15098:2;15078:18;;;15071:30;-1:-1:-1;;;15117:18:50;;;15110:54;15181:18;;13539:53:14;14857:348:50;13539:53:14;13466:133;:::o;12768:171::-;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12842:29:14;-1:-1:-1;;;;;12842:29:14;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:14;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;-1:-1:-1;;;;;7706:16:14;:7;-1:-1:-1;;;;;7706:16:14;;:52;;;-1:-1:-1;;;;;;4508:25:14;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7726:32;7706:87;;;;7786:7;-1:-1:-1;;;;;7762:31:14;:20;7774:7;7762:11;:20::i;:::-;-1:-1:-1;;;;;7762:31:14;;7698:96;7540:261;-1:-1:-1;;;;7540:261:14:o;11423:1233::-;11577:4;-1:-1:-1;;;;;11550:31:14;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:14;;11542:81;;;;-1:-1:-1;;;11542:81:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;11641:16:14;;11633:65;;;;-1:-1:-1;;;11633:65:14;;23365:2:50;11633:65:14;;;23347:21:50;23404:2;23384:18;;;23377:30;23443:34;23423:18;;;23416:62;-1:-1:-1;;;23494:18:50;;;23487:34;23538:19;;11633:65:14;23163:400:50;11633:65:14;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:14;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:14;;11843:81;;;;-1:-1:-1;;;11843:81:14;;;;;;;:::i;:::-;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;;;;;11986:31:14;;;;;;-1:-1:-1;;;;;12461:15:14;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:14;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;3538:336;3468:406;;:::o;18294:138:40:-;18353:4;1552;18372:38;18402:7;18372:4;;;;;;;;;-1:-1:-1;;;;;18372:4:40;-1:-1:-1;;;;;18372:16:40;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;:38::i;:::-;:55;;;;:::i;17335:276::-;17416:3;17458:15;17476:22;17490:7;;17476:2;:13;;:22;;;;:::i;:::-;17458:40;;17518:1;17510:5;:9;17506:50;;;17536:17;17543:10;17536:4;:17;:::i;:::-;17523:30;;17506:50;17570:36;17577:5;17584:21;:10;:19;:21::i;17666:624::-;17747:3;17752:4;17766:20;17791;17805:5;;17791:2;:13;;:20;;;;:::i;:::-;17766:45;;17819:22;17844;17858:7;;17844:2;:13;;:22;;;;:::i;:::-;17819:47;-1:-1:-1;17874:19:40;17899:45;:15;17819:47;17899:26;:45::i;:::-;17874:70;-1:-1:-1;17952:17:40;17978:22;17985:15;17978:4;:22;:::i;:::-;17952:49;;18009:10;18034:71;:60;18079:14;18059:13;1717:10:17;:17;;1630:111;18059:13:40;:18;;18073:4;18059:18;:::i;:::-;18058:35;;;;:::i;:::-;18034:12;;:23;:60::i;:::-;:69;:71::i;:::-;18009:96;;18113:18;18138:20;18145:5;18152;18138:6;:20::i;:::-;18113:45;;18166:14;18191:47;18222:15;18191:19;:13;:17;:19::i;:::-;:30;;:47::i;:::-;18166:72;-1:-1:-1;18254:13:40;18269:14;18279:4;18166:72;18269:14;:::i;:::-;18246:38;;;;;;;;;;;17666:624;;;;;;:::o;17144:142::-;17212:2;17201:3;:6;;:13;;;;;;;:::i;:::-;;;-1:-1:-1;17235:5:40;;17226:6;;:14;17222:39;;;17252:6;;17244:5;:14;17222:39;17279:2;17268:7;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;17144:142:40:o;18475:120::-;18526:3;18569:20;:18;:20::i;:::-;18546;18547:7;18551:3;18547;:7;:::i;18546:20::-;:43;;;;:::i;1189:248:44:-;1305:18;1333:16;1363:11;1357:18;;;;;;;;:::i;:::-;1352:1;:23;;;;;1400:26;;;;;;;1399:33;;;1189:248;-1:-1:-1;;;1189:248:44:o;7041:319:40:-;7088:4;7094:10;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7094:10:40;7114:7;7124:13;1717:10:17;:17;;1630:111;7124:13:40;7114:23;;1147:4;7149:2;:16;7145:52;;7176:18;;-1:-1:-1;;;7176:18:40;;;;;;;;;;;7145:52;7204:13;7210:2;7214;7204:5;:13::i;:::-;7254:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7254:14:40;7277:27;7284:3;1606:5;7277:6;:27::i;:::-;7317:14;;7328:2;;-1:-1:-1;;;;;7317:14:40;;;;;;;;7347:2;;7351:3;;-1:-1:-1;7041:319:40;-1:-1:-1;;7041:319:40:o;608:267:44:-;688:21;;717:154;741:12;:19;737:1;:23;717:154;;;808:12;821:1;808:15;;;;;;;;:::i;:::-;;;;;;;802:22;;;;;;;;:::i;:::-;797:1;:27;;;;;;;;772:53;;;;;853:3;717:154;;13075:307:14;13225:8;-1:-1:-1;;;;;13216:17:14;:5;-1:-1:-1;;;;;13216:17:14;;13208:55;;;;-1:-1:-1;;;13208:55:14;;23770:2:50;13208:55:14;;;23752:21:50;23809:2;23789:18;;;23782:30;23848:27;23828:18;;;23821:55;23893:18;;13208:55:14;23568:349:50;13208:55:14;-1:-1:-1;;;;;13273:25:14;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:14;;;;;;;;;;13334:41;;407::50;;;13334::14;;380:18:50;13334:41:14;;;;;;;13075:307;;;:::o;18621:119:40:-;18711:6;;:24;;;-1:-1:-1;;;18711:24:40;;;;18673:9;;-1:-1:-1;;;;;18711:6:40;;:22;;:24;;;;;;;;;;;;;;:6;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18692:43:40;;18621:119;-1:-1:-1;;;;18621:119:40:o;2630:441:35:-;2806:19;2799:27;;;;2941:28;;2938:35;;2926:9;;2919:17;2915:59;2905:107;;3000:1;2997;2990:12;2905:107;3053:10;;2630:441;-1:-1:-1;2630:441:35:o;1047:213:27:-;1093:7;1232:1;1227;:6;;:15;;1241:1;1240:2;;1227:15;;;-1:-1:-1;1236:1:27;1047:213::o;34781:297:26:-;34837:6;-1:-1:-1;;;;;34962:5:26;:34;;34954:87;;;;-1:-1:-1;;;34954:87:26;;24786:2:50;34954:87:26;;;24768:21:50;24825:2;24805:18;;;24798:30;24864:34;24844:18;;;24837:62;-1:-1:-1;;;24915:18:50;;;24908:38;24963:19;;34954:87:26;24584:404:50;2209:419:35;2375:9;;;2468;;2482:10;;;2479:17;;2465:32;2455:80;;2523:1;2520;2513:12;2455:80;2600:19;2592:28;;;2209:419;-1:-1:-1;;2209:419:35:o;6424:305:14:-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;-1:-1:-1;;;6612:110:14;;;;;;;:::i;415:696:22:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:22;-1:-1:-1;572:41:22;-1:-1:-1;733:28:22;;;749:2;733:28;788:280;-1:-1:-1;;819:5:22;-1:-1:-1;;;953:2:22;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:22;788:280;1032:21;-1:-1:-1;1088:6:22;415:696;-1:-1:-1;;;415:696:22:o;17187:168:26:-;17243:7;17279:1;17270:5;:10;;17262:55;;;;-1:-1:-1;;;17262:55:26;;25614:2:50;17262:55:26;;;25596:21:50;;;25633:18;;;25626:30;25692:34;25672:18;;;25665:62;25744:18;;17262:55:26;25412:356:50;1038:164:32;1103:7;1129:21;1140:1;655:4;1148:1;1129:10;:21::i;4486:970:17:-;4748:22;4798:1;4773:22;4790:4;4773:16;:22::i;:::-;:26;;;;:::i;:::-;4809:18;4830:26;;;:17;:26;;;;;;4748:51;;-1:-1:-1;4960:28:17;;;4956:323;;-1:-1:-1;;;;;5026:18:17;;5004:19;5026:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5075:30;;;;;;:44;;;5191:30;;:17;:30;;;;;:43;;;4956:323;-1:-1:-1;5372:26:17;;;;:17;:26;;;;;;;;5365:33;;;-1:-1:-1;;;;;5415:18:17;;;;;:12;:18;;;;;:34;;;;;;;5408:41;4486:970::o;5744:1061::-;6018:10;:17;5993:22;;6018:21;;6038:1;;6018:21;:::i;:::-;6049:18;6070:24;;;:15;:24;;;;;;6438:10;:26;;5993:46;;-1:-1:-1;6070:24:17;;5993:46;;6438:26;;;;;;:::i;:::-;;;;;;;;;6416:48;;6500:11;6475:10;6486;6475:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6579:28;;;:15;:28;;;;;;;:41;;;6748:24;;;;;6741:31;6782:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5815:990;;;5744:1061;:::o;3296:217::-;3380:14;3397:20;3414:2;3397:16;:20::i;:::-;-1:-1:-1;;;;;3427:16:17;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3471:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3296:217:17:o;18744:262:40:-;18891:55;18918:5;18925:3;18930;18935:10;18891:26;:55::i;:::-;-1:-1:-1;18954:12:40;;;;:7;:12;;;;;18989;18954:32;;;;:47;-1:-1:-1;;18744:262:40:o;704:164:32:-;769:7;795:21;806:1;809;655:4;795:10;:21::i;9091:920:14:-;-1:-1:-1;;;;;9170:16:14;;9162:61;;;;-1:-1:-1;;;9162:61:14;;26107:2:50;9162:61:14;;;26089:21:50;;;26126:18;;;26119:30;26185:34;26165:18;;;26158:62;26237:18;;9162:61:14;25905:356:50;9162:61:14;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:14;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:14;;26468:2:50;9233:58:14;;;26450:21:50;26507:2;26487:18;;;26480:30;26546;26526:18;;;26519:58;26594:18;;9233:58:14;26266:352:50;9233:58:14;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:14;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:14;;26468:2:50;9437:58:14;;;26450:21:50;26507:2;26487:18;;;26480:30;26546;26526:18;;;26519:58;26594:18;;9437:58:14;26266:352:50;9437:58:14;-1:-1:-1;;;;;9837:13:14;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:14;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;4169:153;;:::o;14151:831::-;14300:4;-1:-1:-1;;;;;14320:13:14;;1465:19:20;:23;14316:660:14;;14355:71;;-1:-1:-1;;;14355:71:14;;-1:-1:-1;;;;;14355:36:14;;;;;:71;;719:10:21;;14406:4:14;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:14;;;;;;;;-1:-1:-1;;14355:71:14;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:14;;;;;;;:::i;14589:321::-;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:14;-1:-1:-1;;;14476:51:14;;-1:-1:-1;14469:58:14;;14316:660;-1:-1:-1;14961:4:14;14954:11;;9889:890:25;9942:7;;-1:-1:-1;;;10017:15:25;;10013:99;;-1:-1:-1;;;10052:15:25;;;-1:-1:-1;10095:2:25;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:25;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:25;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:25;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:25;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:25;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:25:o;1564:526:32:-;1680:9;1928:1;-1:-1:-1;;1911:19:32;1908:1;1905:26;1902:1;1898:34;1891:42;1878:11;1874:60;1864:116;;1964:1;1961;1954:12;1864:116;-1:-1:-1;2051:9:32;;2047:27;;1564:526::o;14:248:50:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:50;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:50:o;459:131::-;-1:-1:-1;;;;;;533:32:50;;523:43;;513:71;;580:1;577;570:12;595:245;653:6;706:2;694:9;685:7;681:23;677:32;674:52;;;722:1;719;712:12;674:52;761:9;748:23;780:30;804:5;780:30;:::i;845:250::-;930:1;940:113;954:6;951:1;948:13;940:113;;;1030:11;;;1024:18;1011:11;;;1004:39;976:2;969:10;940:113;;;-1:-1:-1;;1087:1:50;1069:16;;1062:27;845:250::o;1100:271::-;1142:3;1180:5;1174:12;1207:6;1202:3;1195:19;1223:76;1292:6;1285:4;1280:3;1276:14;1269:4;1262:5;1258:16;1223:76;:::i;:::-;1353:2;1332:15;-1:-1:-1;;1328:29:50;1319:39;;;;1360:4;1315:50;;1100:271;-1:-1:-1;;1100:271:50:o;1376:220::-;1525:2;1514:9;1507:21;1488:4;1545:45;1586:2;1575:9;1571:18;1563:6;1545:45;:::i;1601:180::-;1660:6;1713:2;1701:9;1692:7;1688:23;1684:32;1681:52;;;1729:1;1726;1719:12;1681:52;-1:-1:-1;1752:23:50;;1601:180;-1:-1:-1;1601:180:50:o;1994:173::-;2062:20;;-1:-1:-1;;;;;2111:31:50;;2101:42;;2091:70;;2157:1;2154;2147:12;2091:70;1994:173;;;:::o;2172:254::-;2240:6;2248;2301:2;2289:9;2280:7;2276:23;2272:32;2269:52;;;2317:1;2314;2307:12;2269:52;2340:29;2359:9;2340:29;:::i;:::-;2330:39;2416:2;2401:18;;;;2388:32;;-1:-1:-1;;;2172:254:50:o;2613:315::-;2689:6;2697;2705;2758:2;2746:9;2737:7;2733:23;2729:32;2726:52;;;2774:1;2771;2764:12;2726:52;-1:-1:-1;;2797:23:50;;;2867:2;2852:18;;2839:32;;-1:-1:-1;2918:2:50;2903:18;;;2890:32;;2613:315;-1:-1:-1;2613:315:50:o;3113:328::-;3190:6;3198;3206;3259:2;3247:9;3238:7;3234:23;3230:32;3227:52;;;3275:1;3272;3265:12;3227:52;3298:29;3317:9;3298:29;:::i;:::-;3288:39;;3346:38;3380:2;3369:9;3365:18;3346:38;:::i;:::-;3336:48;;3431:2;3420:9;3416:18;3403:32;3393:42;;3113:328;;;;;:::o;3446:254::-;3514:6;3522;3575:2;3563:9;3554:7;3550:23;3546:32;3543:52;;;3591:1;3588;3581:12;3543:52;3627:9;3614:23;3604:33;;3656:38;3690:2;3679:9;3675:18;3656:38;:::i;:::-;3646:48;;3446:254;;;;;:::o;4467:375::-;4538:8;4548:6;4602:3;4595:4;4587:6;4583:17;4579:27;4569:55;;4620:1;4617;4610:12;4569:55;-1:-1:-1;4643:20:50;;4686:18;4675:30;;4672:50;;;4718:1;4715;4708:12;4672:50;4755:4;4747:6;4743:17;4731:29;;4815:3;4808:4;4798:6;4795:1;4791:14;4783:6;4779:27;4775:38;4772:47;4769:67;;;4832:1;4829;4822:12;4847:603;4967:6;4975;4983;4991;5044:2;5032:9;5023:7;5019:23;5015:32;5012:52;;;5060:1;5057;5050:12;5012:52;5096:9;5083:23;5073:33;;5125:38;5159:2;5148:9;5144:18;5125:38;:::i;:::-;5115:48;;5214:2;5203:9;5199:18;5186:32;5241:18;5233:6;5230:30;5227:50;;;5273:1;5270;5263:12;5227:50;5312:78;5382:7;5373:6;5362:9;5358:22;5312:78;:::i;:::-;4847:603;;;;-1:-1:-1;5409:8:50;-1:-1:-1;;;;4847:603:50:o;5455:642::-;5620:2;5672:21;;;5742:13;;5645:18;;;5764:22;;;5591:4;;5620:2;5843:15;;;;5817:2;5802:18;;;5591:4;5886:185;5900:6;5897:1;5894:13;5886:185;;;5975:13;;5968:21;5961:29;5949:42;;6046:15;;;;6011:12;;;;5922:1;5915:9;5886:185;;;-1:-1:-1;6088:3:50;;5455:642;-1:-1:-1;;;;;;5455:642:50:o;6102:186::-;6161:6;6214:2;6202:9;6193:7;6189:23;6185:32;6182:52;;;6230:1;6227;6220:12;6182:52;6253:29;6272:9;6253:29;:::i;6293:151::-;6369:20;;6418:1;6408:12;;6398:40;;6434:1;6431;6424:12;6449:352;6542:6;6550;6558;6611:2;6599:9;6590:7;6586:23;6582:32;6579:52;;;6627:1;6624;6617:12;6579:52;6663:9;6650:23;6640:33;;6692:38;6726:2;6715:9;6711:18;6692:38;:::i;:::-;6682:48;;6749:46;6791:2;6780:9;6776:18;6749:46;:::i;:::-;6739:56;;6449:352;;;;;:::o;6806:547::-;6935:6;6943;6951;7004:2;6992:9;6983:7;6979:23;6975:32;6972:52;;;7020:1;7017;7010:12;6972:52;7056:9;7043:23;7033:33;;7117:2;7106:9;7102:18;7089:32;7144:18;7136:6;7133:30;7130:50;;;7176:1;7173;7166:12;7130:50;7215:78;7285:7;7276:6;7265:9;7261:22;7215:78;:::i;:::-;6806:547;;7312:8;;-1:-1:-1;7189:104:50;;-1:-1:-1;;;;6806:547:50:o;7358:118::-;7444:5;7437:13;7430:21;7423:5;7420:32;7410:60;;7466:1;7463;7456:12;7481:315;7546:6;7554;7607:2;7595:9;7586:7;7582:23;7578:32;7575:52;;;7623:1;7620;7613:12;7575:52;7646:29;7665:9;7646:29;:::i;:::-;7636:39;;7725:2;7714:9;7710:18;7697:32;7738:28;7760:5;7738:28;:::i;:::-;7785:5;7775:15;;;7481:315;;;;;:::o;8023:127::-;8084:10;8079:3;8075:20;8072:1;8065:31;8115:4;8112:1;8105:15;8139:4;8136:1;8129:15;8155:257;8227:4;8221:11;;;8259:17;;8306:18;8291:34;;8327:22;;;8288:62;8285:88;;;8353:18;;:::i;:::-;8389:4;8382:24;8155:257;:::o;8417:275::-;8488:2;8482:9;8553:2;8534:13;;-1:-1:-1;;8530:27:50;8518:40;;8588:18;8573:34;;8609:22;;;8570:62;8567:88;;;8635:18;;:::i;:::-;8671:2;8664:22;8417:275;;-1:-1:-1;8417:275:50:o;8697:980::-;8792:6;8800;8808;8816;8869:3;8857:9;8848:7;8844:23;8840:33;8837:53;;;8886:1;8883;8876:12;8837:53;8909:29;8928:9;8909:29;:::i;:::-;8899:39;;8957:2;8978:38;9012:2;9001:9;8997:18;8978:38;:::i;:::-;8968:48;;9063:2;9052:9;9048:18;9035:32;9025:42;;9118:2;9107:9;9103:18;9090:32;9141:18;9182:2;9174:6;9171:14;9168:34;;;9198:1;9195;9188:12;9168:34;9236:6;9225:9;9221:22;9211:32;;9281:7;9274:4;9270:2;9266:13;9262:27;9252:55;;9303:1;9300;9293:12;9252:55;9339:2;9326:16;9361:2;9357;9354:10;9351:36;;;9367:18;;:::i;:::-;9409:53;9452:2;9433:13;;-1:-1:-1;;9429:27:50;9425:36;;9409:53;:::i;:::-;9396:66;;9485:2;9478:5;9471:17;9525:7;9520:2;9515;9511;9507:11;9503:20;9500:33;9497:53;;;9546:1;9543;9536:12;9497:53;9601:2;9596;9592;9588:11;9583:2;9576:5;9572:14;9559:45;9645:1;9640:2;9635;9628:5;9624:14;9620:23;9613:34;;9666:5;9656:15;;;;;8697:980;;;;;;;:::o;9682:322::-;9759:6;9767;9775;9828:2;9816:9;9807:7;9803:23;9799:32;9796:52;;;9844:1;9841;9834:12;9796:52;9880:9;9867:23;9857:33;;9909:38;9943:2;9932:9;9928:18;9909:38;:::i;10009:260::-;10077:6;10085;10138:2;10126:9;10117:7;10113:23;10109:32;10106:52;;;10154:1;10151;10144:12;10106:52;10177:29;10196:9;10177:29;:::i;:::-;10167:39;;10225:38;10259:2;10248:9;10244:18;10225:38;:::i;10274:380::-;10353:1;10349:12;;;;10396;;;10417:61;;10471:4;10463:6;10459:17;10449:27;;10417:61;10524:2;10516:6;10513:14;10493:18;10490:38;10487:161;;10570:10;10565:3;10561:20;10558:1;10551:31;10605:4;10602:1;10595:15;10633:4;10630:1;10623:15;11491:127;11552:10;11547:3;11543:20;11540:1;11533:31;11583:4;11580:1;11573:15;11607:4;11604:1;11597:15;11623:238;11705:1;11698:5;11695:12;11685:143;;11750:10;11745:3;11741:20;11738:1;11731:31;11785:4;11782:1;11775:15;11813:4;11810:1;11803:15;11685:143;11837:18;;11623:238::o;11866:282::-;12054:25;;;12042:2;12027:18;;12088:54;12138:2;12123:18;;12115:6;12088:54;:::i;12153:127::-;12214:10;12209:3;12205:20;12202:1;12195:31;12245:4;12242:1;12235:15;12269:4;12266:1;12259:15;12285:216;12349:9;;;12377:11;;;12324:3;12407:9;;12435:10;;12431:19;;12460:10;;12452:19;;12428:44;12425:70;;;12475:18;;:::i;12506:409::-;12708:2;12690:21;;;12747:2;12727:18;;;12720:30;12786:34;12781:2;12766:18;;12759:62;-1:-1:-1;;;12852:2:50;12837:18;;12830:43;12905:3;12890:19;;12506:409::o;13585:125::-;13650:9;;;13671:10;;;13668:36;;;13684:18;;:::i;14128:127::-;14189:10;14184:3;14180:20;14177:1;14170:31;14220:4;14217:1;14210:15;14244:4;14241:1;14234:15;14260:135;14299:3;14320:17;;;14317:43;;14340:18;;:::i;:::-;-1:-1:-1;14387:1:50;14376:13;;14260:135::o;14400:210::-;14475:6;14528:2;14516:9;14507:7;14503:23;14499:32;14496:52;;;14544:1;14541;14534:12;14496:52;14567:37;14594:9;14567:37;:::i;14615:237::-;14687:9;;;14654:7;14712:9;;-1:-1:-1;;;14723:18:50;;14708:34;14705:60;;;14745:18;;:::i;:::-;14818:1;14809:7;14804:16;14801:1;14798:23;14794:1;14787:9;14784:38;14774:72;;14826:18;;:::i;15620:331::-;15720:4;15778:11;15765:25;15872:2;15868:7;15857:8;15841:14;15837:29;15833:43;15813:18;15809:68;15799:96;;15891:1;15888;15881:12;15799:96;15912:33;;;;;15620:331;-1:-1:-1;;15620:331:50:o;15956:1157::-;16072:9;16131:4;16123:5;16107:14;16103:26;16099:37;16096:57;;;16149:1;16146;16139:12;16096:57;16177:22;;:::i;:::-;16224:25;16243:5;16224:25;:::i;:::-;16215:7;16208:42;16269:2;16318;16311:5;16307:14;16294:28;16341:18;16382:2;16374:6;16371:14;16368:34;;;16398:1;16395;16388:12;16368:34;16421:18;;;;16477:14;16470:4;16462:13;;16458:34;16448:62;;16506:1;16503;16496:12;16448:62;16542:2;16529:16;16564:2;16560;16557:10;16554:36;;;16570:18;;:::i;:::-;16616:2;16613:1;16609:10;16599:20;;16639:28;16663:2;16659;16655:11;16639:28;:::i;:::-;16701:15;;;16771:11;;;16767:20;;;16732:12;;;;16810:14;16799:26;;16796:46;;;16838:1;16835;16828:12;16796:46;16862:11;;;;16882:156;16898:6;16893:3;16890:15;16882:156;;;16964:31;16991:3;16964:31;:::i;:::-;16952:44;;16915:12;;;;17016;;;;16882:156;;;17054:16;;;17047:31;;;;-1:-1:-1;17058:7:50;;15956:1157;-1:-1:-1;;;;;15956:1157:50:o;17118:2199::-;17445:25;;;17393:2;17489;17507:18;;;17500:30;;;17418:18;;;17565:22;;;17364:4;;17393:2;17606;;17624:18;;;17661:1;17704:15;;;17689:31;;17685:40;;17748:6;17364:4;17782:1506;17796:6;17793:1;17790:13;17782:1506;;;17861:22;;;-1:-1:-1;;17857:36:50;17845:49;;17933:20;;18008:14;18004:27;;;-1:-1:-1;;18000:41:50;17976:66;;17966:94;;18056:1;18053;18046:12;17966:94;18086:31;;18144:15;;;-1:-1:-1;;;;;18191:25:50;18086:31;18191:25;:::i;:::-;18187:51;18179:6;18172:67;18304:2;18297:5;18293:14;18280:28;18393:2;18389:7;18381:5;18365:14;18361:26;18357:40;18335:20;18331:67;18321:95;;18412:1;18409;18402:12;18321:95;18444:32;;;18552:16;;;;-1:-1:-1;18503:21:50;18595:18;18584:30;;18581:50;;;18627:1;18624;18617:12;18581:50;18688:6;18684:2;18680:15;18664:14;18660:36;18651:7;18647:50;18644:70;;;18710:1;18707;18700:12;18644:70;18734:15;;;18727:27;;;18799:22;;;;18918:1;;18843:15;;;18932:248;18948:6;18943:3;18940:15;18932:248;;;19009:71;19074:5;19036:36;19063:8;19036:36;:::i;:::-;19009:71;:::i;:::-;19149:17;;;;18974:1;18965:11;;;;;19106:14;;18932:248;;;19266:12;;;;19203:5;-1:-1:-1;;;19231:15:50;;;;-1:-1:-1;17818:1:50;17811:9;17782:1506;;;-1:-1:-1;19305:6:50;;17118:2199;-1:-1:-1;;;;;;;;;;;17118:2199:50:o;19322:184::-;19392:6;19445:2;19433:9;19424:7;19420:23;19416:32;19413:52;;;19461:1;19458;19451:12;19413:52;-1:-1:-1;19484:16:50;;19322:184;-1:-1:-1;19322:184:50:o;19511:200::-;19577:9;;;19550:4;19605:9;;19633:10;;19645:12;;;19629:29;19668:12;;;19660:21;;19626:56;19623:82;;;19685:18;;:::i;:::-;19623:82;19511:200;;;;:::o;19716:496::-;19895:3;19933:6;19927:13;19949:66;20008:6;20003:3;19996:4;19988:6;19984:17;19949:66;:::i;:::-;20078:13;;20037:16;;;;20100:70;20078:13;20037:16;20147:4;20135:17;;20100:70;:::i;:::-;20186:20;;19716:496;-1:-1:-1;;;;19716:496:50:o;20835:168::-;20908:9;;;20939;;20956:15;;;20950:22;;20936:37;20926:71;;20977:18;;:::i;21140:217::-;21180:1;21206;21196:132;;21250:10;21245:3;21241:20;21238:1;21231:31;21285:4;21282:1;21275:15;21313:4;21310:1;21303:15;21196:132;-1:-1:-1;21342:9:50;;21140:217::o;21952:245::-;22019:6;22072:2;22060:9;22051:7;22047:23;22043:32;22040:52;;;22088:1;22085;22078:12;22040:52;22120:9;22114:16;22139:28;22161:5;22139:28;:::i;22624:128::-;22691:9;;;22712:11;;;22709:37;;;22726:18;;:::i;22757:401::-;22959:2;22941:21;;;22998:2;22978:18;;;22971:30;23037:34;23032:2;23017:18;;23010:62;-1:-1:-1;;;23103:2:50;23088:18;;23081:35;23148:3;23133:19;;22757:401::o;23922:179::-;24000:13;;24053:22;24042:34;;24032:45;;24022:73;;24091:1;24088;24081:12;24106:473;24209:6;24217;24225;24233;24241;24294:3;24282:9;24273:7;24269:23;24265:33;24262:53;;;24311:1;24308;24301:12;24262:53;24334:39;24363:9;24334:39;:::i;:::-;24324:49;;24413:2;24402:9;24398:18;24392:25;24382:35;;24457:2;24446:9;24442:18;24436:25;24426:35;;24501:2;24490:9;24486:18;24480:25;24470:35;;24524:49;24568:3;24557:9;24553:19;24524:49;:::i;:::-;24514:59;;24106:473;;;;;;;;:::o;24993:414::-;25195:2;25177:21;;;25234:2;25214:18;;;25207:30;25273:34;25268:2;25253:18;;25246:62;-1:-1:-1;;;25339:2:50;25324:18;;25317:48;25397:3;25382:19;;24993:414::o;25773:127::-;25834:10;25829:3;25825:20;25822:1;25815:31;25865:4;25862:1;25855:15;25889:4;25886:1;25879:15;26623:489;-1:-1:-1;;;;;26892:15:50;;;26874:34;;26944:15;;26939:2;26924:18;;26917:43;26991:2;26976:18;;26969:34;;;27039:3;27034:2;27019:18;;27012:31;;;26817:4;;27060:46;;27086:19;;27078:6;27060:46;:::i;:::-;27052:54;26623:489;-1:-1:-1;;;;;;26623:489:50:o;27117:249::-;27186:6;27239:2;27227:9;27218:7;27214:23;27210:32;27207:52;;;27255:1;27252;27245:12;27207:52;27287:9;27281:16;27306:30;27330:5;27306:30;:::i", + "linkReferences": {} + }, + "methodIdentifiers": { + "DIBS_MINT_SHARE_REWARD()": "a1458615", + "MAX_SUPPLY()": "32cb6b0c", + "MIN_COLLATERIZATION_RATIO()": "35f2faf0", + "MIN_MINT_DYAD_DEPOSIT()": "397b8024", + "MIN_PRICE_CHANGE_BETWEEN_SYNC()": "e8101c1b", + "MIN_TIME_BETWEEN_SYNC()": "0ba4ae30", + "XP_CLAIM_REWARD()": "c784cbe6", + "XP_DIBS_BURN_REWARD()": "48f2d243", + "XP_DIBS_MINT_REWARD()": "181f6cdd", + "XP_LIQUIDATION_REWARD()": "4b2ec8ee", + "XP_MINT_REWARD()": "febb16df", + "XP_NORM_FACTOR()": "c9e3d730", + "XP_SYNC_REWARD()": "3295787f", + "_idToBlockOfLastDeposit(uint256)": "e643ebac", + "activate(uint256)": "b260c42a", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "deactivate(uint256)": "916b9bef", + "deposit(uint256,uint256)": "e2bbb158", + "dyad()": "add95a51", + "dyadDelta()": "265f63a1", + "exchange(uint256)": "53556559", + "getApproved(uint256)": "081812fc", + "grant(uint256,(address,uint8[])[])": "95952619", + "hasPermission(uint256,address,uint8)": "823abfd9", + "hasPermissions(uint256,address,uint8[])": "551e123b", + "idToClaimed(uint256,uint256)": "019e242e", + "idToNft(uint256)": "483afb2d", + "idToNftPermission(uint256,address)": "36416455", + "isApprovedForAll(address,address)": "e985e9c5", + "lastEthPrice()": "7038fc4e", + "liquidate(uint256,address)": "5fae8b3d", + "maxXp()": "413217b7", + "mint(address)": "6a627842", + "move(uint256,uint256,int256)": "1849c73a", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "prevDyadDelta()": "decb84dc", + "prevSyncedBlock()": "e6446691", + "redeem(uint256,address,uint256)": "d8780161", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "snipe(uint256,uint256)": "de1eecb3", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "sync(uint256)": "b1357bf9", + "syncedBlock()": "d4912507", + "timeOfLastSync()": "174c67e1", + "tokenByIndex(uint256)": "4f6ccce7", + "tokenOfOwnerByIndex(address,uint256)": "2f745c59", + "tokenURI(uint256)": "c87b56dd", + "totalSupply()": "18160ddd", + "totalXp()": "10d4f96d", + "transferFrom(address,address,uint256)": "23b872dd", + "withdraw(uint256,address,uint256)": "e63697c8" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dyad\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_insiders\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"syncedBlock\",\"type\":\"uint256\"}],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"syncedBlock\",\"type\":\"uint256\"}],\"name\":\"AlreadySniped\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"CannotDepositAndWithdrawInSameBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"}],\"name\":\"CrTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"DNftDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"DepositIsNegative\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DyadTotalSupplyZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"averageTVL\",\"type\":\"uint256\"}],\"name\":\"ExceedsAverageTVL\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"deposit\",\"type\":\"int256\"}],\"name\":\"ExceedsDepositBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ExceedsWithdrawalBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FailedEthTransfer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"IsActive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"IsInactive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"enum DNft.Permission\",\"name\":\"permission\",\"type\":\"uint8\"}],\"name\":\"MissingPermission\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"amount\",\"type\":\"int256\"}],\"name\":\"NotEnoughToCoverDepositMinimum\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"amount\",\"type\":\"int256\"}],\"name\":\"NotEnoughToCoverNegativeDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"NotLiquidatable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"NotNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"priceChange\",\"type\":\"int256\"}],\"name\":\"PriceChangeTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReachedMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SyncTooSoon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"WithdrawalsNotZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Activated\",\"type\":\"event\"},{\"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\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"share\",\"type\":\"int256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Deactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount\",\"type\":\"int256\"}],\"name\":\"Exchanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Liquidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum DNft.Permission[]\",\"name\":\"permissions\",\"type\":\"uint8[]\"}],\"indexed\":false,\"internalType\":\"struct DNft.PermissionSet[]\",\"name\":\"permissions\",\"type\":\"tuple[]\"}],\"name\":\"Modified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount\",\"type\":\"int256\"}],\"name\":\"Moved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Redeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"share\",\"type\":\"int256\"}],\"name\":\"Sniped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Synced\",\"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\":true,\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIBS_MINT_SHARE_REWARD\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_COLLATERIZATION_RATIO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_MINT_DYAD_DEPOSIT\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_PRICE_CHANGE_BETWEEN_SYNC\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_TIME_BETWEEN_SYNC\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_CLAIM_REWARD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_DIBS_BURN_REWARD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_DIBS_MINT_REWARD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_LIQUIDATION_REWARD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_MINT_REWARD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_NORM_FACTOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"XP_SYNC_REWARD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_idToBlockOfLastDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"activate\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"deactivate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dyad\",\"outputs\":[{\"internalType\":\"contract Dyad\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dyadDelta\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum DNft.Permission[]\",\"name\":\"permissions\",\"type\":\"uint8[]\"}],\"internalType\":\"struct DNft.PermissionSet[]\",\"name\":\"_permissionSets\",\"type\":\"tuple[]\"}],\"name\":\"grant\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum DNft.Permission\",\"name\":\"permission\",\"type\":\"uint8\"}],\"name\":\"hasPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum DNft.Permission[]\",\"name\":\"permissions\",\"type\":\"uint8[]\"}],\"name\":\"hasPermissions\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"_hasPermissions\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"idToClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"idToNft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"xp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deposit\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"withdrawal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastOwnershipChange\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"idToNftPermission\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"uint248\",\"name\":\"lastUpdated\",\"type\":\"uint248\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastEthPrice\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxXp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_to\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"_amount\",\"type\":\"int256\"}],\"name\":\"move\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"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\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevDyadDelta\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevSyncedBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"_from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_to\",\"type\":\"uint256\"}],\"name\":\"snipe\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"sync\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"syncedBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeOfLastSync\",\"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\":\"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\":[],\"name\":\"totalXp\",\"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\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/DNft.sol\":\"DNft\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@solmate/=lib/solmate/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a\",\"dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0xfedb27d14c508342c33eb067c9a02eabcdb0f9dcf93b04ded1001f580d12d0ea\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1ff52bbee698b9cf9e4574615e6550be0887ccf355f6571e23d6f25b332e79b4\",\"dweb:/ipfs/QmVorA2apojVRStzS7h8aFccR3Uv32G6HVtBtFHZrE7YXx\"]},\"lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1b62af9baf5b8e991ed7531bc87f45550ba9d61e8dbff5caf237ccaf3a3fd843\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://b7b38b977c5305b18ceefbeed4c9ceaaaefa419b520de62de6604ea661f8c0a9\",\"dweb:/ipfs/QmecMRzgfMyDVa2pvBqMMDLYBappaj7Aa3qcMoQYEQrhWi\"]},\"lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x5129243d01d1ff65ee34aed11660bf13f01964f481664c96676877df70f32909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf4ad509b77f5225faacd793953d6cab8a73667f9891fdfffb145168616bafeb\",\"dweb:/ipfs/QmfM7F1dXEDYruPaHXBXGC4cuWUizt1PBR628RNptEhbCd\"]},\"lib/solmate/src/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb282dd78aa7375d6b200b9a5d8dd214b2e5df1004f8217a4b4c2b07f0c5bfd01\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://5fca62eb8d3dbd2b3b7e4bb051f6da16f4d0ff9cee61c39cebb80f031f6a8800\",\"dweb:/ipfs/QmbrsXPK91iBFwHKwJs2HLRud2KzMoBDRiWYMUtyV5H57j\"]},\"lib/solmate/src/utils/SignedWadMath.sol\":{\"keccak256\":\"0x43afbe799f745a6095e03fc2d5e3981c9c5bf65a900e916d5b286084a29bf036\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51652beb270c0f990d3b880e922abb124c429e73afd09dc40d54cb273ba9383a\",\"dweb:/ipfs/QmUtX4R7jmdwjVoFCBAAXaW8KdTRCmwdKyjbUqDfHiQisT\"]},\"src/core/DNft.sol\":{\"keccak256\":\"0x2231f970dd43ea49d438e81d6573cbca5e6effbaadb226e5d4d52f96aa00ed20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26321513a0d79d44c259307c39eb0926b1bb2512866e65e3d3e935309ac81285\",\"dweb:/ipfs/QmadSvuhG7EhwGi5ZrBEFKqgn7ZNnrwk9RqSF9o7g1Qhgf\"]},\"src/core/Dyad.sol\":{\"keccak256\":\"0x2ad7c3ccd0bbfb119754c0ba459bc42193664ce0fbecf40cd8225f8b7b380936\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b0ad62eeee09d9d9fa26f42ce95cd847beaa64d4a5b8b7d2eb31c3bf82d0dfe\",\"dweb:/ipfs/QmPNct7www3p5s1Rz1oFNZVLkShkoZz18ypuQyzW7QhK4d\"]},\"src/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x81a73c1e2e76a9c6771a1d2e17088864898b30e0a994214f33f425d2702a5ff5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c614d0470a7477b890d812b83c986555b3f965574ad568c3a9af1e428186a8\",\"dweb:/ipfs/QmQwN1t47REy5JniJiFi55dpydCvK9vNRUgzauvkNbwiUL\"]},\"src/libraries/PermissionMath.sol\":{\"keccak256\":\"0x0be3338ba4e2c2633910dfb7c1edd52709b50aa0fcfdb4303de8b8971c5fd7f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979f253974606139ea39cb3a7ed998d72a1ab4a7ba8947dbe4146937e8c21ce4\",\"dweb:/ipfs/QmX1c7pf2nTMidhfouG8Jb3t1Ebxwbuef2ykh3FbTy7Nxv\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_dyad", + "type": "address" }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 28115, - "nodeType": "ImportDirective", - "src": "252:37:31", - "nodes": [], - "absolutePath": "src/pool.sol", - "file": "../src/pool.sol", - "nameLocation": "-1:-1:-1", - "scope": 28871, - "sourceUnit": 32760, - "symbolAliases": [ - { - "foreign": { - "id": 28114, - "name": "Pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32759, - "src": "260:4:31", - "typeDescriptions": {} + { + "internalType": "address", + "name": "_oracle", + "type": "address" }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 28117, - "nodeType": "ImportDirective", - "src": "290:50:31", - "nodes": [], - "absolutePath": "src/interfaces/IdNFT.sol", - "file": "../src/interfaces/IdNFT.sol", - "nameLocation": "-1:-1:-1", - "scope": 28871, - "sourceUnit": 29187, - "symbolAliases": [ - { - "foreign": { - "id": 28116, - "name": "IdNFT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29186, - "src": "298:5:31", - "typeDescriptions": {} + { + "internalType": "address[]", + "name": "_insiders", + "type": "address[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 28870, - "nodeType": "ContractDefinition", - "src": "342:8319:31", - "nodes": [ - { - "id": 28124, - "nodeType": "VariableDeclaration", - "src": "460:37:31", - "nodes": [], - "constant": true, - "functionSelector": "32cb6b0c", - "mutability": "constant", - "name": "MAX_SUPPLY", - "nameLocation": "481:10:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "internalType": "uint256", + "name": "syncedBlock", + "type": "uint256" + } + ], + "type": "error", + "name": "AlreadyClaimed" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" }, - "typeName": { - "id": 28122, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "460:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "internalType": "uint256", + "name": "syncedBlock", + "type": "uint256" + } + ], + "type": "error", + "name": "AlreadySniped" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "type": "error", + "name": "CannotDepositAndWithdrawInSameBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "cr", + "type": "uint256" + } + ], + "type": "error", + "name": "CrTooLow" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "DNftDoesNotExist" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "DepositIsNegative" + }, + { + "inputs": [], + "type": "error", + "name": "DyadTotalSupplyZero" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "averageTVL", + "type": "uint256" + } + ], + "type": "error", + "name": "ExceedsAverageTVL" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "deposit", + "type": "int256" + } + ], + "type": "error", + "name": "ExceedsDepositBalance" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "type": "error", + "name": "ExceedsWithdrawalBalance" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" }, - "value": { - "hexValue": "333030", - "id": 28123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "494:3:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_300_by_1", - "typeString": "int_const 300" - }, - "value": "300" - }, - "visibility": "public" - }, - { - "id": 28127, - "nodeType": "VariableDeclaration", - "src": "502:52:31", - "nodes": [], - "constant": true, - "functionSelector": "c6c53398", - "mutability": "constant", - "name": "MAX_COLLATERATION_RATIO", - "nameLocation": "523:23:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "type": "error", + "name": "FailedEthTransfer" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "IsActive" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "IsInactive" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" }, - "typeName": { - "id": 28125, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "502:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "internalType": "enum DNft.Permission", + "name": "permission", + "type": "uint8" + } + ], + "type": "error", + "name": "MissingPermission" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "type": "error", + "name": "NotEnoughToCoverDepositMinimum" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "type": "error", + "name": "NotEnoughToCoverNegativeDeposit" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "NotLiquidatable" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "NotNFTOwner" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "priceChange", + "type": "int256" + } + ], + "type": "error", + "name": "PriceChangeTooSmall" + }, + { + "inputs": [], + "type": "error", + "name": "ReachedMaxSupply" + }, + { + "inputs": [], + "type": "error", + "name": "SyncTooSoon" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "type": "error", + "name": "WithdrawalsNotZero" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Activated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true }, - "value": { - "hexValue": "3135303030", - "id": 28126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "549:5:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_15000_by_1", - "typeString": "int_const 15000" - }, - "value": "15000" + { + "internalType": "address", + "name": "approved", + "type": "address", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28129, - "nodeType": "VariableDeclaration", - "src": "583:25:31", - "nodes": [], - "constant": false, - "functionSelector": "959f7857", - "mutability": "mutable", - "name": "numberOfMints", - "nameLocation": "595:13:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256", + "indexed": true + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true }, - "typeName": { - "id": 28128, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "583:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "internalType": "address", + "name": "operator", + "type": "address", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28131, - "nodeType": "VariableDeclaration", - "src": "662:27:31", - "nodes": [], - "constant": false, - "functionSelector": "ae34b6e1", - "mutability": "mutable", - "name": "DEPOSIT_MINIMUM", - "nameLocation": "674:15:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "internalType": "bool", + "name": "approved", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "ApprovalForAll", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true }, - "typeName": { - "id": 28130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "662:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "internalType": "int256", + "name": "share", + "type": "int256", + "indexed": false + } + ], + "type": "event", + "name": "Claimed", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Deactivated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28134, - "nodeType": "VariableDeclaration", - "src": "1073:27:31", - "nodes": [], - "constant": false, - "functionSelector": "cc672ae2", - "mutability": "mutable", - "name": "MIN_XP", - "nameLocation": "1085:6:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28132, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Deposited", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true }, - "value": { - "hexValue": "393030303030", - "id": 28133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1094:6:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_900000_by_1", - "typeString": "int_const 900000" - }, - "value": "900000" + { + "internalType": "int256", + "name": "amount", + "type": "int256", + "indexed": false + } + ], + "type": "event", + "name": "Exchanged", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28139, - "nodeType": "VariableDeclaration", - "src": "1233:40:31", - "nodes": [], - "constant": false, - "functionSelector": "d9dee3d1", - "mutability": "mutable", - "name": "MAX_XP", - "nameLocation": "1245:6:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + } + ], + "type": "event", + "name": "Liquidated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true }, - "typeName": { - "id": 28135, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1233:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + } + ], + "type": "event", + "name": "Minted", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256", + "indexed": false }, - "value": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 28136, - "name": "MIN_XP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28134, - "src": "1254:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 28137, - "name": "MAX_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28124, - "src": "1263:10:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "internalType": "struct DNft.PermissionSet[]", + "name": "permissions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "enum DNft.Permission[]", + "name": "permissions", + "type": "uint8[]" } - }, - "src": "1254:19:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "indexed": false + } + ], + "type": "event", + "name": "Modified", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28142, - "nodeType": "VariableDeclaration", - "src": "1278:16:31", - "nodes": [], - "constant": false, - "functionSelector": "add95a51", - "mutability": "mutable", - "name": "dyad", - "nameLocation": "1290:4:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" + { + "internalType": "uint256", + "name": "to", + "type": "uint256", + "indexed": true }, - "typeName": { - "id": 28141, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28140, - "name": "DYAD", - "nameLocations": [ - "1278:4:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28933, - "src": "1278:4:31" - }, - "referencedDeclaration": 28933, - "src": "1278:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" - } + { + "internalType": "int256", + "name": "amount", + "type": "int256", + "indexed": false + } + ], + "type": "event", + "name": "Moved", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28145, - "nodeType": "VariableDeclaration", - "src": "1298:16:31", - "nodes": [], - "constant": false, - "functionSelector": "16f0115b", - "mutability": "mutable", - "name": "pool", - "nameLocation": "1310:4:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true }, - "typeName": { - "id": 28144, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28143, - "name": "Pool", - "nameLocations": [ - "1298:4:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32759, - "src": "1298:4:31" - }, - "referencedDeclaration": 32759, - "src": "1298:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Redeemed", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256", + "indexed": true }, - "visibility": "public" - }, - { - "id": 28150, - "nodeType": "VariableDeclaration", - "src": "1356:41:31", - "nodes": [], - "constant": false, - "functionSelector": "483afb2d", - "mutability": "mutable", - "name": "idToNft", - "nameLocation": "1390:7:31", - "scope": 28870, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft)" + { + "internalType": "uint256", + "name": "to", + "type": "uint256", + "indexed": true }, - "typeName": { - "id": 28149, - "keyType": { - "id": 28146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1364:4:31", + { + "internalType": "int256", + "name": "share", + "type": "int256", + "indexed": false + } + ], + "type": "event", + "name": "Sniped", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Synced", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256", + "indexed": true + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Withdrawn", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DIBS_MINT_SHARE_REWARD", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MAX_SUPPLY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MIN_COLLATERIZATION_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MIN_MINT_DYAD_DEPOSIT", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MIN_PRICE_CHANGE_BETWEEN_SYNC", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MIN_TIME_BETWEEN_SYNC", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_CLAIM_REWARD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_DIBS_BURN_REWARD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_DIBS_MINT_REWARD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_LIQUIDATION_REWARD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_MINT_REWARD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_NORM_FACTOR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "XP_SYNC_REWARD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "_idToBlockOfLastDeposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "activate" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deactivate" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "dyad", + "outputs": [ + { + "internalType": "contract Dyad", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "dyadDelta", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "exchange", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "internalType": "struct DNft.PermissionSet[]", + "name": "_permissionSets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "enum DNft.Permission[]", + "name": "permissions", + "type": "uint8[]" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "grant" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "enum DNft.Permission", + "name": "permission", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasPermission", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "enum DNft.Permission[]", + "name": "permissions", + "type": "uint8[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasPermissions", + "outputs": [ + { + "internalType": "bool[]", + "name": "_hasPermissions", + "type": "bool[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "idToClaimed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "idToNft", + "outputs": [ + { + "internalType": "uint256", + "name": "xp", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "deposit", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "withdrawal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastOwnershipChange", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "idToNftPermission", + "outputs": [ + { + "internalType": "uint8", + "name": "permissions", + "type": "uint8" + }, + { + "internalType": "uint248", + "name": "lastUpdated", + "type": "uint248" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastEthPrice", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "liquidate" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "maxXp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_from", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_to", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "_amount", + "type": "int256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "move", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "prevDyadDelta", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "prevSyncedBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "redeem", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "safeTransferFrom" + }, + { + "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" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "safeTransferFrom" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setApprovalForAll" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_from", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_to", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "snipe", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "sync", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "syncedBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "timeOfLastSync", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalXp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "from", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdraw", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/=lib/openzeppelin-contracts/", + ":@solmate/=lib/solmate/", + ":ds-test/=lib/solmate/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/", + ":solmate/=lib/solmate/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/core/DNft.sol": "DNft" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol": { + "keccak256": "0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b", + "urls": [ + "bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c", + "dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": { + "keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68", + "urls": [ + "bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56", + "dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol": { + "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da", + "urls": [ + "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708", + "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol": { + "keccak256": "0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3", + "urls": [ + "bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a", + "dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { + "keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf", + "urls": [ + "bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34", + "dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9", + "urls": [ + "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146", + "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1", + "urls": [ + "bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269", + "dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", + "urls": [ + "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", + "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", + "urls": [ + "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", + "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", + "urls": [ + "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", + "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6", + "urls": [ + "bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b", + "dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { + "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad", + "urls": [ + "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278", + "dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", + "urls": [ + "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", + "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6" + ], + "license": "MIT" + }, + "lib/solmate/src/auth/Owned.sol": { + "keccak256": "0xfedb27d14c508342c33eb067c9a02eabcdb0f9dcf93b04ded1001f580d12d0ea", + "urls": [ + "bzz-raw://1ff52bbee698b9cf9e4574615e6550be0887ccf355f6571e23d6f25b332e79b4", + "dweb:/ipfs/QmVorA2apojVRStzS7h8aFccR3Uv32G6HVtBtFHZrE7YXx" + ], + "license": "AGPL-3.0-only" + }, + "lib/solmate/src/tokens/ERC20.sol": { + "keccak256": "0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10", + "urls": [ + "bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35", + "dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97" + ], + "license": "AGPL-3.0-only" + }, + "lib/solmate/src/utils/FixedPointMathLib.sol": { + "keccak256": "0x1b62af9baf5b8e991ed7531bc87f45550ba9d61e8dbff5caf237ccaf3a3fd843", + "urls": [ + "bzz-raw://b7b38b977c5305b18ceefbeed4c9ceaaaefa419b520de62de6604ea661f8c0a9", + "dweb:/ipfs/QmecMRzgfMyDVa2pvBqMMDLYBappaj7Aa3qcMoQYEQrhWi" + ], + "license": "AGPL-3.0-only" + }, + "lib/solmate/src/utils/LibString.sol": { + "keccak256": "0x5129243d01d1ff65ee34aed11660bf13f01964f481664c96676877df70f32909", + "urls": [ + "bzz-raw://cf4ad509b77f5225faacd793953d6cab8a73667f9891fdfffb145168616bafeb", + "dweb:/ipfs/QmfM7F1dXEDYruPaHXBXGC4cuWUizt1PBR628RNptEhbCd" + ], + "license": "MIT" + }, + "lib/solmate/src/utils/ReentrancyGuard.sol": { + "keccak256": "0xb282dd78aa7375d6b200b9a5d8dd214b2e5df1004f8217a4b4c2b07f0c5bfd01", + "urls": [ + "bzz-raw://5fca62eb8d3dbd2b3b7e4bb051f6da16f4d0ff9cee61c39cebb80f031f6a8800", + "dweb:/ipfs/QmbrsXPK91iBFwHKwJs2HLRud2KzMoBDRiWYMUtyV5H57j" + ], + "license": "AGPL-3.0-only" + }, + "lib/solmate/src/utils/SignedWadMath.sol": { + "keccak256": "0x43afbe799f745a6095e03fc2d5e3981c9c5bf65a900e916d5b286084a29bf036", + "urls": [ + "bzz-raw://51652beb270c0f990d3b880e922abb124c429e73afd09dc40d54cb273ba9383a", + "dweb:/ipfs/QmUtX4R7jmdwjVoFCBAAXaW8KdTRCmwdKyjbUqDfHiQisT" + ], + "license": "MIT" + }, + "src/core/DNft.sol": { + "keccak256": "0x2231f970dd43ea49d438e81d6573cbca5e6effbaadb226e5d4d52f96aa00ed20", + "urls": [ + "bzz-raw://26321513a0d79d44c259307c39eb0926b1bb2512866e65e3d3e935309ac81285", + "dweb:/ipfs/QmadSvuhG7EhwGi5ZrBEFKqgn7ZNnrwk9RqSF9o7g1Qhgf" + ], + "license": "MIT" + }, + "src/core/Dyad.sol": { + "keccak256": "0x2ad7c3ccd0bbfb119754c0ba459bc42193664ce0fbecf40cd8225f8b7b380936", + "urls": [ + "bzz-raw://4b0ad62eeee09d9d9fa26f42ce95cd847beaa64d4a5b8b7d2eb31c3bf82d0dfe", + "dweb:/ipfs/QmPNct7www3p5s1Rz1oFNZVLkShkoZz18ypuQyzW7QhK4d" + ], + "license": "MIT" + }, + "src/interfaces/AggregatorV3Interface.sol": { + "keccak256": "0x81a73c1e2e76a9c6771a1d2e17088864898b30e0a994214f33f425d2702a5ff5", + "urls": [ + "bzz-raw://e2c614d0470a7477b890d812b83c986555b3f965574ad568c3a9af1e428186a8", + "dweb:/ipfs/QmQwN1t47REy5JniJiFi55dpydCvK9vNRUgzauvkNbwiUL" + ], + "license": "MIT" + }, + "src/libraries/PermissionMath.sol": { + "keccak256": "0x0be3338ba4e2c2633910dfb7c1edd52709b50aa0fcfdb4303de8b8971c5fd7f9", + "urls": [ + "bzz-raw://979f253974606139ea39cb3a7ed998d72a1ab4a7ba8947dbe4146937e8c21ce4", + "dweb:/ipfs/QmX1c7pf2nTMidhfouG8Jb3t1Ebxwbuef2ykh3FbTy7Nxv" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/core/DNft.sol", + "id": 34367, + "exportedSymbols": { + "DNft": [ + 34366 + ], + "Dyad": [ + 34418 + ], + "ERC721": [ + 24670 + ], + "ERC721Enumerable": [ + 25158 + ], + "FixedPointMathLib": [ + 31297 + ], + "IAggregatorV3": [ + 34464 + ], + "LibString": [ + 31341 + ], + "PermissionMath": [ + 34928 + ], + "ReentrancyGuard": [ + 31367 + ], + "SafeCast": [ + 28185 + ], + "SignedMath": [ + 28290 + ], + "wadDiv": [ + 31445 + ], + "wadMul": [ + 31434 + ] + }, + "nodeType": "SourceUnit", + "src": "32:18977:40", + "nodes": [ + { + "id": 32372, + "nodeType": "PragmaDirective", + "src": "32:25:40", + "nodes": [], + "literals": [ + "solidity", + "=", + "0.8", + ".17" + ] + }, + { + "id": 32374, + "nodeType": "ImportDirective", + "src": "59:73:40", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol", + "file": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 28186, + "symbolAliases": [ + { + "foreign": { + "id": 32373, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28185, + "src": "67:8:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32376, + "nodeType": "ImportDirective", + "src": "133:77:40", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "file": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 28291, + "symbolAliases": [ + { + "foreign": { + "id": 32375, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28290, + "src": "141:10:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32379, + "nodeType": "ImportDirective", + "src": "211:110:40", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 25159, + "symbolAliases": [ + { + "foreign": { + "id": 32377, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24670, + "src": "219:6:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 32378, + "name": "ERC721Enumerable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25158, + "src": "227:16:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32381, + "nodeType": "ImportDirective", + "src": "322:71:40", + "nodes": [], + "absolutePath": "lib/solmate/src/utils/ReentrancyGuard.sol", + "file": "@solmate/src/utils/ReentrancyGuard.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 31368, + "symbolAliases": [ + { + "foreign": { + "id": 32380, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31367, + "src": "330:15:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32383, + "nodeType": "ImportDirective", + "src": "394:54:40", + "nodes": [], + "absolutePath": "lib/solmate/src/utils/LibString.sol", + "file": "solmate/utils/LibString.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 31342, + "symbolAliases": [ + { + "foreign": { + "id": 32382, + "name": "LibString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31341, + "src": "402:9:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32386, + "nodeType": "ImportDirective", + "src": "449:68:40", + "nodes": [], + "absolutePath": "lib/solmate/src/utils/SignedWadMath.sol", + "file": "@solmate/src/utils/SignedWadMath.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 31893, + "symbolAliases": [ + { + "foreign": { + "id": 32384, + "name": "wadDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31445, + "src": "457:6:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 32385, + "name": "wadMul", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31434, + "src": "465:6:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32388, + "nodeType": "ImportDirective", + "src": "518:75:40", + "nodes": [], + "absolutePath": "lib/solmate/src/utils/FixedPointMathLib.sol", + "file": "@solmate/src/utils/FixedPointMathLib.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 31298, + "symbolAliases": [ + { + "foreign": { + "id": 32387, + "name": "FixedPointMathLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31297, + "src": "526:17:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32390, + "nodeType": "ImportDirective", + "src": "595:70:40", + "nodes": [], + "absolutePath": "src/interfaces/AggregatorV3Interface.sol", + "file": "../interfaces/AggregatorV3Interface.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 34465, + "symbolAliases": [ + { + "foreign": { + "id": 32389, + "name": "IAggregatorV3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34464, + "src": "603:13:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32392, + "nodeType": "ImportDirective", + "src": "666:32:40", + "nodes": [], + "absolutePath": "src/core/Dyad.sol", + "file": "./Dyad.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 34419, + "symbolAliases": [ + { + "foreign": { + "id": 32391, + "name": "Dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34418, + "src": "674:4:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 32394, + "nodeType": "ImportDirective", + "src": "699:63:40", + "nodes": [], + "absolutePath": "src/libraries/PermissionMath.sol", + "file": "../libraries/PermissionMath.sol", + "nameLocation": "-1:-1:-1", + "scope": 34367, + "sourceUnit": 34929, + "symbolAliases": [ + { + "foreign": { + "id": 32393, + "name": "PermissionMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34928, + "src": "707:14:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 34366, + "nodeType": "ContractDefinition", + "src": "764:18244:40", + "nodes": [ + { + "id": 32401, + "nodeType": "UsingForDirective", + "src": "819:36:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32399, + "name": "SafeCast", + "nameLocations": [ + "825:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "825:8:40" + }, + "typeName": { + "id": 32400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "847:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 32404, + "nodeType": "UsingForDirective", + "src": "858:35:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32402, + "name": "SafeCast", + "nameLocations": [ + "864:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "864:8:40" + }, + "typeName": { + "id": 32403, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "886:6:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + { + "id": 32407, + "nodeType": "UsingForDirective", + "src": "896:35:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32405, + "name": "SignedMath", + "nameLocations": [ + "902:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28290, + "src": "902:10:40" + }, + "typeName": { + "id": 32406, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "924:6:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + { + "id": 32410, + "nodeType": "UsingForDirective", + "src": "934:36:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32408, + "name": "FixedPointMathLib", + "nameLocations": [ + "940:17:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31297, + "src": "940:17:40" + }, + "typeName": { + "id": 32409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "962:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 32413, + "nodeType": "UsingForDirective", + "src": "973:36:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32411, + "name": "LibString", + "nameLocations": [ + "979:9:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31341, + "src": "979:9:40" + }, + "typeName": { + "id": 32412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1001:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 32418, + "nodeType": "UsingForDirective", + "src": "1012:41:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32414, + "name": "PermissionMath", + "nameLocations": [ + "1018:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34928, + "src": "1018:14:40" + }, + "typeName": { + "baseType": { + "id": 32416, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32415, + "name": "Permission", + "nameLocations": [ + "1040:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32496, + "src": "1040:10:40" + }, + "referencedDeclaration": 32496, + "src": "1040:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + }, + "id": 32417, + "nodeType": "ArrayTypeName", + "src": "1040:12:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_storage_ptr", + "typeString": "enum DNft.Permission[]" + } + } + }, + { + "id": 32421, + "nodeType": "UsingForDirective", + "src": "1056:34:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 32419, + "name": "PermissionMath", + "nameLocations": [ + "1062:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34928, + "src": "1062:14:40" + }, + "typeName": { + "id": 32420, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1084:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + { + "id": 32424, + "nodeType": "VariableDeclaration", + "src": "1094:57:40", + "nodes": [], + "constant": true, + "functionSelector": "32cb6b0c", + "mutability": "constant", + "name": "MAX_SUPPLY", + "nameLocation": "1115:10:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1094:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32303030", + "id": 32423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1147:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2000_by_1", + "typeString": "int_const 2000" + }, + "value": "2000" + }, + "visibility": "public" + }, + { + "id": 32427, + "nodeType": "VariableDeclaration", + "src": "1184:60:40", + "nodes": [], + "constant": true, + "functionSelector": "35f2faf0", + "mutability": "constant", + "name": "MIN_COLLATERIZATION_RATIO", + "nameLocation": "1205:25:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32425, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1184:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "312e3530653138", + "id": 32426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1237:7:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1500000000000000000_by_1", + "typeString": "int_const 1500000000000000000" + }, + "value": "1.50e18" + }, + "visibility": "public" + }, + { + "id": 32430, + "nodeType": "VariableDeclaration", + "src": "1272:61:40", + "nodes": [], + "constant": true, + "functionSelector": "e8101c1b", + "mutability": "constant", + "name": "MIN_PRICE_CHANGE_BETWEEN_SYNC", + "nameLocation": "1293:29:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32428, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1272:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e303031653138", + "id": 32429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1325:8:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000_by_1", + "typeString": "int_const 1000000000000000" + }, + "value": "0.001e18" + }, + "visibility": "public" + }, + { + "id": 32433, + "nodeType": "VariableDeclaration", + "src": "1360:63:40", + "nodes": [], + "constant": true, + "functionSelector": "0ba4ae30", + "mutability": "constant", + "name": "MIN_TIME_BETWEEN_SYNC", + "nameLocation": "1381:21:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1360:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 32432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1413:10:40", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_600_by_1", + "typeString": "int_const 600" + }, + "value": "10" + }, + "visibility": "public" + }, + { + "id": 32436, + "nodeType": "VariableDeclaration", + "src": "1428:57:40", + "nodes": [], + "constant": true, + "functionSelector": "397b8024", + "mutability": "constant", + "name": "MIN_MINT_DYAD_DEPOSIT", + "nameLocation": "1449:21:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32434, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "1428:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "hexValue": "31653138", + "id": 32435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1481:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "visibility": "public" + }, + { + "id": 32439, + "nodeType": "VariableDeclaration", + "src": "1506:50:40", + "nodes": [], + "constant": true, + "functionSelector": "c9e3d730", + "mutability": "constant", + "name": "XP_NORM_FACTOR", + "nameLocation": "1527:14:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1506:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31653136", + "id": 32438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1552:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "value": "1e16" + }, + "visibility": "public" + }, + { + "id": 32442, + "nodeType": "VariableDeclaration", + "src": "1560:51:40", + "nodes": [], + "constant": true, + "functionSelector": "febb16df", + "mutability": "constant", + "name": "XP_MINT_REWARD", + "nameLocation": "1581:14:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1560:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "315f303030", + "id": 32441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1606:5:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1_000" + }, + "visibility": "public" + }, + { + "id": 32445, + "nodeType": "VariableDeclaration", + "src": "1615:55:40", + "nodes": [], + "constant": true, + "functionSelector": "3295787f", + "mutability": "constant", + "name": "XP_SYNC_REWARD", + "nameLocation": "1636:14:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1615:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303034653138", + "id": 32444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1661:9:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_400000000000000_by_1", + "typeString": "int_const 400000000000000" + }, + "value": "0.0004e18" + }, + "visibility": "public" + }, + { + "id": 32448, + "nodeType": "VariableDeclaration", + "src": "1695:55:40", + "nodes": [], + "constant": true, + "functionSelector": "4b2ec8ee", + "mutability": "constant", + "name": "XP_LIQUIDATION_REWARD", + "nameLocation": "1716:21:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32446, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1695:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303034653138", + "id": 32447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1741:9:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_400000000000000_by_1", + "typeString": "int_const 400000000000000" + }, + "value": "0.0004e18" + }, + "visibility": "public" + }, + { + "id": 32451, + "nodeType": "VariableDeclaration", + "src": "1775:55:40", + "nodes": [], + "constant": true, + "functionSelector": "48f2d243", + "mutability": "constant", + "name": "XP_DIBS_BURN_REWARD", + "nameLocation": "1796:19:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1775:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303033653138", + "id": 32450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1821:9:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_300000000000000_by_1", + "typeString": "int_const 300000000000000" + }, + "value": "0.0003e18" + }, + "visibility": "public" + }, + { + "id": 32454, + "nodeType": "VariableDeclaration", + "src": "1855:55:40", + "nodes": [], + "constant": true, + "functionSelector": "181f6cdd", + "mutability": "constant", + "name": "XP_DIBS_MINT_REWARD", + "nameLocation": "1876:19:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32452, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1855:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303032653138", + "id": 32453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1901:9:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_200000000000000_by_1", + "typeString": "int_const 200000000000000" + }, + "value": "0.0002e18" + }, + "visibility": "public" + }, + { + "id": 32457, + "nodeType": "VariableDeclaration", + "src": "1935:55:40", + "nodes": [], + "constant": true, + "functionSelector": "c784cbe6", + "mutability": "constant", + "name": "XP_CLAIM_REWARD", + "nameLocation": "1956:15:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32455, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1935:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303031653138", + "id": 32456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1981:9:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000_by_1", + "typeString": "int_const 100000000000000" + }, + "value": "0.0001e18" + }, + "visibility": "public" + }, + { + "id": 32460, + "nodeType": "VariableDeclaration", + "src": "2015:53:40", + "nodes": [], + "constant": true, + "functionSelector": "a1458615", + "mutability": "constant", + "name": "DIBS_MINT_SHARE_REWARD", + "nameLocation": "2036:22:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32458, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "2015:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "hexValue": "302e3630653138", + "id": 32459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2061:7:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_600000000000000000_by_1", + "typeString": "int_const 600000000000000000" + }, + "value": "0.60e18" + }, + "visibility": "public" + }, + { + "id": 32462, + "nodeType": "VariableDeclaration", + "src": "2094:24:40", + "nodes": [], + "constant": false, + "functionSelector": "7038fc4e", + "mutability": "mutable", + "name": "lastEthPrice", + "nameLocation": "2106:12:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32461, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "2094:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "public" + }, + { + "id": 32464, + "nodeType": "VariableDeclaration", + "src": "2169:21:40", + "nodes": [], + "constant": false, + "functionSelector": "265f63a1", + "mutability": "mutable", + "name": "dyadDelta", + "nameLocation": "2181:9:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32463, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "2169:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "public" + }, + { + "id": 32466, + "nodeType": "VariableDeclaration", + "src": "2257:25:40", + "nodes": [], + "constant": false, + "functionSelector": "decb84dc", + "mutability": "mutable", + "name": "prevDyadDelta", + "nameLocation": "2269:13:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32465, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "2257:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "public" + }, + { + "id": 32468, + "nodeType": "VariableDeclaration", + "src": "2353:23:40", + "nodes": [], + "constant": false, + "functionSelector": "d4912507", + "mutability": "mutable", + "name": "syncedBlock", + "nameLocation": "2365:11:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32467, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2353:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 32470, + "nodeType": "VariableDeclaration", + "src": "2426:27:40", + "nodes": [], + "constant": false, + "functionSelector": "e6446691", + "mutability": "mutable", + "name": "prevSyncedBlock", + "nameLocation": "2438:15:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2426:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 32472, + "nodeType": "VariableDeclaration", + "src": "2500:19:40", + "nodes": [], + "constant": false, + "functionSelector": "10d4f96d", + "mutability": "mutable", + "name": "totalXp", + "nameLocation": "2512:7:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32471, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2500:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 32474, + "nodeType": "VariableDeclaration", + "src": "2561:17:40", + "nodes": [], + "constant": false, + "functionSelector": "413217b7", + "mutability": "mutable", + "name": "maxXp", + "nameLocation": "2573:5:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32473, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2561:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 32476, + "nodeType": "VariableDeclaration", + "src": "2624:26:40", + "nodes": [], + "constant": false, + "functionSelector": "174c67e1", + "mutability": "mutable", + "name": "timeOfLastSync", + "nameLocation": "2636:14:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32475, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2624:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 32487, + "nodeType": "StructDefinition", + "src": "2655:232:40", + "nodes": [], + "canonicalName": "DNft.Nft", + "members": [ + { + "constant": false, + "id": 32478, + "mutability": "mutable", + "name": "xp", + "nameLocation": "2677:2:40", + "nodeType": "VariableDeclaration", + "scope": 32487, + "src": "2672:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32477, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2672:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32480, + "mutability": "mutable", + "name": "deposit", + "nameLocation": "2721:7:40", + "nodeType": "VariableDeclaration", + "scope": 32487, + "src": "2716:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32479, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "2716:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32482, + "mutability": "mutable", + "name": "withdrawal", + "nameLocation": "2760:10:40", + "nodeType": "VariableDeclaration", + "scope": 32487, + "src": "2755:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2755:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32484, + "mutability": "mutable", + "name": "lastOwnershipChange", + "nameLocation": "2799:19:40", + "nodeType": "VariableDeclaration", + "scope": 32487, + "src": "2794:24:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32483, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2794:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32486, + "mutability": "mutable", + "name": "isActive", + "nameLocation": "2874:8:40", + "nodeType": "VariableDeclaration", + "scope": 32487, + "src": "2869:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 32485, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2869:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "Nft", + "nameLocation": "2662:3:40", + "scope": 34366, + "visibility": "public" + }, + { + "id": 32496, + "nodeType": "EnumDefinition", + "src": "2891:90:40", + "nodes": [], + "canonicalName": "DNft.Permission", + "members": [ + { + "id": 32488, + "name": "ACTIVATE", + "nameLocation": "2909:8:40", + "nodeType": "EnumValue", + "src": "2909:8:40" + }, + { + "id": 32489, + "name": "DEACTIVATE", + "nameLocation": "2919:10:40", + "nodeType": "EnumValue", + "src": "2919:10:40" + }, + { + "id": 32490, + "name": "EXCHANGE", + "nameLocation": "2931:8:40", + "nodeType": "EnumValue", + "src": "2931:8:40" + }, + { + "id": 32491, + "name": "DEPOSIT", + "nameLocation": "2941:7:40", + "nodeType": "EnumValue", + "src": "2941:7:40" + }, + { + "id": 32492, + "name": "MOVE", + "nameLocation": "2950:4:40", + "nodeType": "EnumValue", + "src": "2950:4:40" + }, + { + "id": 32493, + "name": "WITHDRAW", + "nameLocation": "2956:8:40", + "nodeType": "EnumValue", + "src": "2956:8:40" + }, + { + "id": 32494, + "name": "REDEEM", + "nameLocation": "2966:6:40", + "nodeType": "EnumValue", + "src": "2966:6:40" + }, + { + "id": 32495, + "name": "CLAIM", + "nameLocation": "2974:5:40", + "nodeType": "EnumValue", + "src": "2974:5:40" + } + ], + "name": "Permission", + "nameLocation": "2896:10:40" + }, + { + "id": 32503, + "nodeType": "StructDefinition", + "src": "2985:124:40", + "nodes": [], + "canonicalName": "DNft.PermissionSet", + "members": [ + { + "constant": false, + "id": 32498, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3025:8:40", + "nodeType": "VariableDeclaration", + "scope": 32503, + "src": "3012:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3012:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32502, + "mutability": "mutable", + "name": "permissions", + "nameLocation": "3056:11:40", + "nodeType": "VariableDeclaration", + "scope": 32503, + "src": "3043:24:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_storage_ptr", + "typeString": "enum DNft.Permission[]" + }, + "typeName": { + "baseType": { + "id": 32500, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32499, + "name": "Permission", + "nameLocations": [ + "3043:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32496, + "src": "3043:10:40" + }, + "referencedDeclaration": 32496, + "src": "3043:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + }, + "id": 32501, + "nodeType": "ArrayTypeName", + "src": "3043:12:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_storage_ptr", + "typeString": "enum DNft.Permission[]" + } + }, + "visibility": "internal" + } + ], + "name": "PermissionSet", + "nameLocation": "2992:13:40", + "scope": 34366, + "visibility": "public" + }, + { + "id": 32508, + "nodeType": "StructDefinition", + "src": "3113:133:40", + "nodes": [], + "canonicalName": "DNft.NftPermission", + "members": [ + { + "constant": false, + "id": 32505, + "mutability": "mutable", + "name": "permissions", + "nameLocation": "3148:11:40", + "nodeType": "VariableDeclaration", + "scope": 32508, + "src": "3140:19:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 32504, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3140:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32507, + "mutability": "mutable", + "name": "lastUpdated", + "nameLocation": "3198:11:40", + "nodeType": "VariableDeclaration", + "scope": 32508, + "src": "3190:19:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + }, + "typeName": { + "id": 32506, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "3190:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "visibility": "internal" + } + ], + "name": "NftPermission", + "nameLocation": "3120:13:40", + "scope": 34366, + "visibility": "public" + }, + { + "id": 32513, + "nodeType": "VariableDeclaration", + "src": "3250:65:40", + "nodes": [], + "constant": false, + "functionSelector": "483afb2d", + "mutability": "mutable", + "name": "idToNft", + "nameLocation": "3308:7:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft)" + }, + "typeName": { + "id": 32512, + "keyType": { + "id": 32509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3258:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3250:20:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft)" + }, + "valueType": { + "id": 32511, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32510, + "name": "Nft", + "nameLocations": [ + "3266:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "3266:3:40" + }, + "referencedDeclaration": 32487, + "src": "3266:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + } + }, + "visibility": "public" + }, + { + "id": 32520, + "nodeType": "VariableDeclaration", + "src": "3319:75:40", + "nodes": [], + "constant": false, + "functionSelector": "36416455", + "mutability": "mutable", + "name": "idToNftPermission", + "nameLocation": "3377:17:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DNft.NftPermission))" + }, + "typeName": { + "id": 32519, + "keyType": { + "id": 32514, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3327:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3319:50:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DNft.NftPermission))" + }, + "valueType": { + "id": 32518, + "keyType": { + "id": 32515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3343:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3335:33:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$", + "typeString": "mapping(address => struct DNft.NftPermission)" + }, + "valueType": { + "id": 32517, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32516, + "name": "NftPermission", + "nameLocations": [ + "3354:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32508, + "src": "3354:13:40" + }, + "referencedDeclaration": 32508, + "src": "3354:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_storage_ptr", + "typeString": "struct DNft.NftPermission" + } + } + } + }, + "visibility": "public" + }, + { + "id": 32526, + "nodeType": "VariableDeclaration", + "src": "3435:69:40", + "nodes": [], + "constant": false, + "functionSelector": "019e242e", + "mutability": "mutable", + "name": "idToClaimed", + "nameLocation": "3493:11:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + }, + "typeName": { + "id": 32525, + "keyType": { + "id": 32521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3443:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3435:38:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + }, + "valueType": { + "id": 32524, + "keyType": { + "id": 32522, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3459:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3451:21:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 32523, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3467:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "public" + }, + { + "id": 32530, + "nodeType": "VariableDeclaration", + "src": "3548:81:40", + "nodes": [], + "constant": false, + "functionSelector": "e643ebac", + "mutability": "mutable", + "name": "_idToBlockOfLastDeposit", + "nameLocation": "3606:23:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 32529, + "keyType": { + "id": 32527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3556:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3548:21:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 32528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3564:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "Mapping", - "src": "1356:26:31", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft)" - }, - "valueType": { - "id": 28148, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28147, - "name": "IdNFT.Nft", - "nameLocations": [ - "1372:5:31", - "1378:3:31" + } + }, + "visibility": "public" + }, + { + "id": 32533, + "nodeType": "VariableDeclaration", + "src": "3657:16:40", + "nodes": [], + "constant": false, + "functionSelector": "add95a51", + "mutability": "mutable", + "name": "dyad", + "nameLocation": "3669:4:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + }, + "typeName": { + "id": 32532, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32531, + "name": "Dyad", + "nameLocations": [ + "3657:4:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34418, + "src": "3657:4:40" + }, + "referencedDeclaration": 34418, + "src": "3657:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "visibility": "public" + }, + { + "id": 32536, + "nodeType": "VariableDeclaration", + "src": "3677:29:40", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "oracle", + "nameLocation": "3700:6:40", + "scope": 34366, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAggregatorV3_$34464", + "typeString": "contract IAggregatorV3" + }, + "typeName": { + "id": 32535, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32534, + "name": "IAggregatorV3", + "nameLocations": [ + "3677:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34464, + "src": "3677:13:40" + }, + "referencedDeclaration": 34464, + "src": "3677:13:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAggregatorV3_$34464", + "typeString": "contract IAggregatorV3" + } + }, + "visibility": "internal" + }, + { + "id": 32542, + "nodeType": "EventDefinition", + "src": "3711:55:40", + "nodes": [], + "anonymous": false, + "eventSelector": "30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe", + "name": "Minted", + "nameLocation": "3717:6:40", + "parameters": { + "id": 32541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32538, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "3745:2:40", + "nodeType": "VariableDeclaration", + "scope": 32542, + "src": "3729:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3729:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32540, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "3762:2:40", + "nodeType": "VariableDeclaration", + "scope": 32542, + "src": "3749:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32539, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3749:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3728:37:40" + } + }, + { + "id": 32548, + "nodeType": "EventDefinition", + "src": "3769:48:40", + "nodes": [], + "anonymous": false, + "eventSelector": "06da3309189fa49284f335d2c2bcb4cb0b8ad2a59ad92a9bdebeeb8f1ceba511", + "name": "Deposited", + "nameLocation": "3775:9:40", + "parameters": { + "id": 32547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32544, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "3800:2:40", + "nodeType": "VariableDeclaration", + "scope": 32548, + "src": "3787:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32543, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3787:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32546, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3809:6:40", + "nodeType": "VariableDeclaration", + "scope": 32548, + "src": "3804:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3804:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3786:30:40" + } + }, + { + "id": 32556, + "nodeType": "EventDefinition", + "src": "3820:68:40", + "nodes": [], + "anonymous": false, + "eventSelector": "f3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec262", + "name": "Redeemed", + "nameLocation": "3826:8:40", + "parameters": { + "id": 32555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "3854:2:40", + "nodeType": "VariableDeclaration", + "scope": 32556, + "src": "3838:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3838:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32552, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "3871:2:40", + "nodeType": "VariableDeclaration", + "scope": 32556, + "src": "3858:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32551, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3858:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32554, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3880:6:40", + "nodeType": "VariableDeclaration", + "scope": 32556, + "src": "3875:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32553, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3875:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3837:50:40" + } + }, + { + "id": 32564, + "nodeType": "EventDefinition", + "src": "3891:70:40", + "nodes": [], + "anonymous": false, + "eventSelector": "cf7d23a3cbe4e8b36ff82fd1b05b1b17373dc7804b4ebbd6e2356716ef202372", + "name": "Withdrawn", + "nameLocation": "3897:9:40", + "parameters": { + "id": 32563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32558, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "3922:4:40", + "nodeType": "VariableDeclaration", + "scope": 32564, + "src": "3909:17:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32557, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3909:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32560, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "3944:2:40", + "nodeType": "VariableDeclaration", + "scope": 32564, + "src": "3928:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3928:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32562, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3953:6:40", + "nodeType": "VariableDeclaration", + "scope": 32564, + "src": "3948:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32561, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3948:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3908:52:40" + } + }, + { + "id": 32570, + "nodeType": "EventDefinition", + "src": "3964:47:40", + "nodes": [], + "anonymous": false, + "eventSelector": "f99ef896dbec5c9f8ed65fcd703b977e36f533d2dbe0f54b055724102c66935b", + "name": "Exchanged", + "nameLocation": "3970:9:40", + "parameters": { + "id": 32569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32566, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "3995:2:40", + "nodeType": "VariableDeclaration", + "scope": 32570, + "src": "3982:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32565, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3982:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32568, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4003:6:40", + "nodeType": "VariableDeclaration", + "scope": 32570, + "src": "3999:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32567, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "3999:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "3981:29:40" + } + }, + { + "id": 32578, + "nodeType": "EventDefinition", + "src": "4014:66:40", + "nodes": [], + "anonymous": false, + "eventSelector": "ecf7a2a9b87e864721b005a74148c7e41af15fa580f04024f55a5902b32e556e", + "name": "Moved", + "nameLocation": "4020:5:40", + "parameters": { + "id": 32577, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32572, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "4045:4:40", + "nodeType": "VariableDeclaration", + "scope": 32578, + "src": "4032:17:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32571, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4032:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32574, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "4064:2:40", + "nodeType": "VariableDeclaration", + "scope": 32578, + "src": "4051:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4051:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32576, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4072:6:40", + "nodeType": "VariableDeclaration", + "scope": 32578, + "src": "4068:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32575, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "4068:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "4031:48:40" + } + }, + { + "id": 32582, + "nodeType": "EventDefinition", + "src": "4083:27:40", + "nodes": [], + "anonymous": false, + "eventSelector": "ff14d8520387b9b85d2a017dc41ae15db04a22d4c67deac04eb45048631ffa86", + "name": "Synced", + "nameLocation": "4089:6:40", + "parameters": { + "id": 32581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32580, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "4106:2:40", + "nodeType": "VariableDeclaration", + "scope": 32582, + "src": "4101:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32579, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4101:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4100:9:40" + } + }, + { + "id": 32588, + "nodeType": "EventDefinition", + "src": "4113:46:40", + "nodes": [], + "anonymous": false, + "eventSelector": "80d2137c01c20957d2640ac104067c27bdfb6f6405d354a50e4e0663dbfd3406", + "name": "Claimed", + "nameLocation": "4119:7:40", + "parameters": { + "id": 32587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32584, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "4144:2:40", + "nodeType": "VariableDeclaration", + "scope": 32588, + "src": "4131:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32583, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4131:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32586, + "indexed": false, + "mutability": "mutable", + "name": "share", + "nameLocation": "4152:5:40", + "nodeType": "VariableDeclaration", + "scope": 32588, + "src": "4148:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32585, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "4148:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "4130:28:40" + } + }, + { + "id": 32596, + "nodeType": "EventDefinition", + "src": "4162:65:40", + "nodes": [], + "anonymous": false, + "eventSelector": "0e7d191e2306ac0b4fbf5a2cb60c28ddb5a0507bd6dc06322d0d1ea0925eabd7", + "name": "Sniped", + "nameLocation": "4168:6:40", + "parameters": { + "id": 32595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32590, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "4193:4:40", + "nodeType": "VariableDeclaration", + "scope": 32596, + "src": "4180:17:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32589, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4180:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32592, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "4212:2:40", + "nodeType": "VariableDeclaration", + "scope": 32596, + "src": "4199:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4199:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32594, + "indexed": false, + "mutability": "mutable", + "name": "share", + "nameLocation": "4220:5:40", + "nodeType": "VariableDeclaration", + "scope": 32596, + "src": "4216:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32593, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "4216:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "4179:47:40" + } + }, + { + "id": 32600, + "nodeType": "EventDefinition", + "src": "4230:27:40", + "nodes": [], + "anonymous": false, + "eventSelector": "3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce", + "name": "Activated", + "nameLocation": "4236:9:40", + "parameters": { + "id": 32599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32598, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "4253:2:40", + "nodeType": "VariableDeclaration", + "scope": 32600, + "src": "4248:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4248:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4247:9:40" + } + }, + { + "id": 32604, + "nodeType": "EventDefinition", + "src": "4260:27:40", + "nodes": [], + "anonymous": false, + "eventSelector": "ed48e4e899b34abded07dd8f092a22585a3fdec7db6b83f3927af165bf04cb1e", + "name": "Deactivated", + "nameLocation": "4266:11:40", + "parameters": { + "id": 32603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32602, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "4283:2:40", + "nodeType": "VariableDeclaration", + "scope": 32604, + "src": "4278:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4278:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4277:9:40" + } + }, + { + "id": 32610, + "nodeType": "EventDefinition", + "src": "4290:55:40", + "nodes": [], + "anonymous": false, + "eventSelector": "a5ee7a2b0254fce91deed604506790ed7fa072d0b14cba4859c3bc8955b9caac", + "name": "Liquidated", + "nameLocation": "4296:10:40", + "parameters": { + "id": 32609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32606, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "4324:2:40", + "nodeType": "VariableDeclaration", + "scope": 32610, + "src": "4308:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32605, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4308:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32608, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "4341:2:40", + "nodeType": "VariableDeclaration", + "scope": 32610, + "src": "4328:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32607, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4328:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4307:37:40" + } + }, + { + "id": 32618, + "nodeType": "EventDefinition", + "src": "4348:64:40", + "nodes": [], + "anonymous": false, + "eventSelector": "5015559e4f379aa0dd2effee572c916b09bb68ed41ad9ab127c8066f052e1643", + "name": "Modified", + "nameLocation": "4354:8:40", + "parameters": { + "id": 32617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32612, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4374:7:40", + "nodeType": "VariableDeclaration", + "scope": 32618, + "src": "4366:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4366:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32616, + "indexed": false, + "mutability": "mutable", + "name": "permissions", + "nameLocation": "4399:11:40", + "nodeType": "VariableDeclaration", + "scope": 32618, + "src": "4383:27:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_memory_ptr_$dyn_memory_ptr", + "typeString": "struct DNft.PermissionSet[]" + }, + "typeName": { + "baseType": { + "id": 32614, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32613, + "name": "PermissionSet", + "nameLocations": [ + "4383:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32503, + "src": "4383:13:40" + }, + "referencedDeclaration": 32503, + "src": "4383:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_storage_ptr", + "typeString": "struct DNft.PermissionSet" + } + }, + "id": 32615, + "nodeType": "ArrayTypeName", + "src": "4383:15:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_storage_$dyn_storage_ptr", + "typeString": "struct DNft.PermissionSet[]" + } + }, + "visibility": "internal" + } + ], + "src": "4365:46:40" + } + }, + { + "id": 32620, + "nodeType": "ErrorDefinition", + "src": "4416:40:40", + "nodes": [], + "errorSelector": "794bb39b", + "name": "ReachedMaxSupply", + "nameLocation": "4422:16:40", + "parameters": { + "id": 32619, + "nodeType": "ParameterList", + "parameters": [], + "src": "4453:2:40" + } + }, + { + "id": 32622, + "nodeType": "ErrorDefinition", + "src": "4459:40:40", + "nodes": [], + "errorSelector": "68921eaa", + "name": "SyncTooSoon", + "nameLocation": "4465:11:40", + "parameters": { + "id": 32621, + "nodeType": "ParameterList", + "parameters": [], + "src": "4496:2:40" + } + }, + { + "id": 32624, + "nodeType": "ErrorDefinition", + "src": "4502:40:40", + "nodes": [], + "errorSelector": "551ded62", + "name": "DyadTotalSupplyZero", + "nameLocation": "4508:19:40", + "parameters": { + "id": 32623, + "nodeType": "ParameterList", + "parameters": [], + "src": "4539:2:40" + } + }, + { + "id": 32628, + "nodeType": "ErrorDefinition", + "src": "4545:47:40", + "nodes": [], + "errorSelector": "d17d5613", + "name": "DNftDoesNotExist", + "nameLocation": "4551:16:40", + "parameters": { + "id": 32627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32626, + "mutability": "mutable", + "name": "id", + "nameLocation": "4588:2:40", + "nodeType": "VariableDeclaration", + "scope": 32628, + "src": "4583:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32625, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4583:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4582:9:40" + } + }, + { + "id": 32632, + "nodeType": "ErrorDefinition", + "src": "4595:47:40", + "nodes": [], + "errorSelector": "d64dfb01", + "name": "NotNFTOwner", + "nameLocation": "4601:11:40", + "parameters": { + "id": 32631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32630, + "mutability": "mutable", + "name": "id", + "nameLocation": "4638:2:40", + "nodeType": "VariableDeclaration", + "scope": 32632, + "src": "4633:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4633:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4632:9:40" + } + }, + { + "id": 32636, + "nodeType": "ErrorDefinition", + "src": "4645:47:40", + "nodes": [], + "errorSelector": "4fd4b9f7", + "name": "NotLiquidatable", + "nameLocation": "4651:15:40", + "parameters": { + "id": 32635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32634, + "mutability": "mutable", + "name": "id", + "nameLocation": "4688:2:40", + "nodeType": "VariableDeclaration", + "scope": 32636, + "src": "4683:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32633, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4683:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4682:9:40" + } + }, + { + "id": 32640, + "nodeType": "ErrorDefinition", + "src": "4695:47:40", + "nodes": [], + "errorSelector": "39d0e299", + "name": "WithdrawalsNotZero", + "nameLocation": "4701:18:40", + "parameters": { + "id": 32639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32638, + "mutability": "mutable", + "name": "id", + "nameLocation": "4738:2:40", + "nodeType": "VariableDeclaration", + "scope": 32640, + "src": "4733:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32637, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4733:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4732:9:40" + } + }, + { + "id": 32644, + "nodeType": "ErrorDefinition", + "src": "4745:47:40", + "nodes": [], + "errorSelector": "2449a18d", + "name": "DepositIsNegative", + "nameLocation": "4751:17:40", + "parameters": { + "id": 32643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32642, + "mutability": "mutable", + "name": "id", + "nameLocation": "4788:2:40", + "nodeType": "VariableDeclaration", + "scope": 32644, + "src": "4783:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32641, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4783:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4782:9:40" + } + }, + { + "id": 32648, + "nodeType": "ErrorDefinition", + "src": "4795:47:40", + "nodes": [], + "errorSelector": "0fc26262", + "name": "IsActive", + "nameLocation": "4801:8:40", + "parameters": { + "id": 32647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32646, + "mutability": "mutable", + "name": "id", + "nameLocation": "4838:2:40", + "nodeType": "VariableDeclaration", + "scope": 32648, + "src": "4833:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32645, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4833:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4832:9:40" + } + }, + { + "id": 32652, + "nodeType": "ErrorDefinition", + "src": "4845:47:40", + "nodes": [], + "errorSelector": "2080e3d3", + "name": "IsInactive", + "nameLocation": "4851:10:40", + "parameters": { + "id": 32651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32650, + "mutability": "mutable", + "name": "id", + "nameLocation": "4888:2:40", + "nodeType": "VariableDeclaration", + "scope": 32652, + "src": "4883:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32649, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4883:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4882:9:40" + } + }, + { + "id": 32656, + "nodeType": "ErrorDefinition", + "src": "4895:55:40", + "nodes": [], + "errorSelector": "dd16eb90", + "name": "ExceedsAverageTVL", + "nameLocation": "4901:17:40", + "parameters": { + "id": 32655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32654, + "mutability": "mutable", + "name": "averageTVL", + "nameLocation": "4938:10:40", + "nodeType": "VariableDeclaration", + "scope": 32656, + "src": "4933:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32653, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4933:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4932:17:40" + } + }, + { + "id": 32660, + "nodeType": "ErrorDefinition", + "src": "4953:55:40", + "nodes": [], + "errorSelector": "e7466121", + "name": "PriceChangeTooSmall", + "nameLocation": "4959:19:40", + "parameters": { + "id": 32659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32658, + "mutability": "mutable", + "name": "priceChange", + "nameLocation": "4995:11:40", + "nodeType": "VariableDeclaration", + "scope": 32660, + "src": "4991:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32657, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "4991:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "4990:17:40" + } + }, + { + "id": 32664, + "nodeType": "ErrorDefinition", + "src": "5011:50:40", + "nodes": [], + "errorSelector": "3e0432ef", + "name": "NotEnoughToCoverDepositMinimum", + "nameLocation": "5017:30:40", + "parameters": { + "id": 32663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32662, + "mutability": "mutable", + "name": "amount", + "nameLocation": "5053:6:40", + "nodeType": "VariableDeclaration", + "scope": 32664, + "src": "5049:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32661, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "5049:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "5048:12:40" + } + }, + { + "id": 32668, + "nodeType": "ErrorDefinition", + "src": "5064:50:40", + "nodes": [], + "errorSelector": "e874cb10", + "name": "NotEnoughToCoverNegativeDeposit", + "nameLocation": "5070:31:40", + "parameters": { + "id": 32667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32666, + "mutability": "mutable", + "name": "amount", + "nameLocation": "5106:6:40", + "nodeType": "VariableDeclaration", + "scope": 32668, + "src": "5102:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32665, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "5102:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "5101:12:40" + } + }, + { + "id": 32672, + "nodeType": "ErrorDefinition", + "src": "5117:47:40", + "nodes": [], + "errorSelector": "f51aaf65", + "name": "CrTooLow", + "nameLocation": "5123:8:40", + "parameters": { + "id": 32671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32670, + "mutability": "mutable", + "name": "cr", + "nameLocation": "5160:2:40", + "nodeType": "VariableDeclaration", + "scope": 32672, + "src": "5155:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32669, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5155:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5154:9:40" + } + }, + { + "id": 32676, + "nodeType": "ErrorDefinition", + "src": "5167:51:40", + "nodes": [], + "errorSelector": "d136cbd2", + "name": "ExceedsDepositBalance", + "nameLocation": "5173:21:40", + "parameters": { + "id": 32675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32674, + "mutability": "mutable", + "name": "deposit", + "nameLocation": "5209:7:40", + "nodeType": "VariableDeclaration", + "scope": 32676, + "src": "5205:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32673, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "5205:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "5204:13:40" + } + }, + { + "id": 32680, + "nodeType": "ErrorDefinition", + "src": "5221:51:40", + "nodes": [], + "errorSelector": "2ccaa71c", + "name": "ExceedsWithdrawalBalance", + "nameLocation": "5227:24:40", + "parameters": { + "id": 32679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32678, + "mutability": "mutable", + "name": "amount", + "nameLocation": "5264:6:40", + "nodeType": "VariableDeclaration", + "scope": 32680, + "src": "5259:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5259:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5258:13:40" + } + }, + { + "id": 32686, + "nodeType": "ErrorDefinition", + "src": "5275:63:40", + "nodes": [], + "errorSelector": "fd5e1ff2", + "name": "FailedEthTransfer", + "nameLocation": "5281:17:40", + "parameters": { + "id": 32685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32682, + "mutability": "mutable", + "name": "to", + "nameLocation": "5321:2:40", + "nodeType": "VariableDeclaration", + "scope": 32686, + "src": "5313:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32681, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5313:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32684, + "mutability": "mutable", + "name": "amount", + "nameLocation": "5330:6:40", + "nodeType": "VariableDeclaration", + "scope": 32686, + "src": "5325:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32683, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5325:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5312:25:40" + } + }, + { + "id": 32692, + "nodeType": "ErrorDefinition", + "src": "5341:65:40", + "nodes": [], + "errorSelector": "6bd4745f", + "name": "AlreadyClaimed", + "nameLocation": "5347:14:40", + "parameters": { + "id": 32691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32688, + "mutability": "mutable", + "name": "id", + "nameLocation": "5384:2:40", + "nodeType": "VariableDeclaration", + "scope": 32692, + "src": "5379:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32687, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5379:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32690, + "mutability": "mutable", + "name": "syncedBlock", + "nameLocation": "5393:11:40", + "nodeType": "VariableDeclaration", + "scope": 32692, + "src": "5388:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32689, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5388:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5378:27:40" + } + }, + { + "id": 32698, + "nodeType": "ErrorDefinition", + "src": "5409:65:40", + "nodes": [], + "errorSelector": "33fd126c", + "name": "AlreadySniped", + "nameLocation": "5415:13:40", + "parameters": { + "id": 32697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32694, + "mutability": "mutable", + "name": "id", + "nameLocation": "5452:2:40", + "nodeType": "VariableDeclaration", + "scope": 32698, + "src": "5447:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32693, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5447:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32696, + "mutability": "mutable", + "name": "syncedBlock", + "nameLocation": "5461:11:40", + "nodeType": "VariableDeclaration", + "scope": 32698, + "src": "5456:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32695, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5456:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5446:27:40" + } + }, + { + "id": 32705, + "nodeType": "ErrorDefinition", + "src": "5477:70:40", + "nodes": [], + "errorSelector": "acb8d02d", + "name": "MissingPermission", + "nameLocation": "5483:17:40", + "parameters": { + "id": 32704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32700, + "mutability": "mutable", + "name": "id", + "nameLocation": "5520:2:40", + "nodeType": "VariableDeclaration", + "scope": 32705, + "src": "5515:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32699, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5515:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32703, + "mutability": "mutable", + "name": "permission", + "nameLocation": "5535:10:40", + "nodeType": "VariableDeclaration", + "scope": 32705, + "src": "5524:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + }, + "typeName": { + "id": 32702, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32701, + "name": "Permission", + "nameLocations": [ + "5524:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32496, + "src": "5524:10:40" + }, + "referencedDeclaration": 32496, + "src": "5524:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + }, + "visibility": "internal" + } + ], + "src": "5514:32:40" + } + }, + { + "id": 32709, + "nodeType": "ErrorDefinition", + "src": "5550:60:40", + "nodes": [], + "errorSelector": "652bccfc", + "name": "CannotDepositAndWithdrawInSameBlock", + "nameLocation": "5556:35:40", + "parameters": { + "id": 32708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32707, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "5597:11:40", + "nodeType": "VariableDeclaration", + "scope": 32709, + "src": "5592:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32706, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5592:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5591:18:40" + } + }, + { + "id": 32724, + "nodeType": "ModifierDefinition", + "src": "5614:85:40", + "nodes": [], + "body": { + "id": 32723, + "nodeType": "Block", + "src": "5639:60:40", + "nodes": [], + "statements": [ + { + "condition": { + "id": 32716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5649:12:40", + "subExpression": { + "arguments": [ + { + "id": 32714, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32711, + "src": "5658:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32713, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24171, + "src": "5650:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 32715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5650:11:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32721, + "nodeType": "IfStatement", + "src": "5645:45:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 32718, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32711, + "src": "5687:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32717, + "name": "DNftDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32628, + "src": "5670:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 32719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5670:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32720, + "nodeType": "RevertStatement", + "src": "5663:27:40" + } + }, + { + "id": 32722, + "nodeType": "PlaceholderStatement", + "src": "5692:1:40" + } + ] + }, + "name": "exists", + "nameLocation": "5623:6:40", + "parameters": { + "id": 32712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32711, + "mutability": "mutable", + "name": "id", + "nameLocation": "5635:2:40", + "nodeType": "VariableDeclaration", + "scope": 32724, + "src": "5630:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5630:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5629:9:40" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 32741, + "nodeType": "ModifierDefinition", + "src": "5702:95:40", + "nodes": [], + "body": { + "id": 32740, + "nodeType": "Block", + "src": "5730:67:40", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 32733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 32729, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32726, + "src": "5748:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32728, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23871, + "src": "5740:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 32730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5740:11:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 32731, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5755:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 32732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5759:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5755:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5740:25:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32738, + "nodeType": "IfStatement", + "src": "5736:53:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 32735, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32726, + "src": "5786:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32734, + "name": "NotNFTOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32632, + "src": "5774:11:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 32736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5774:15:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32737, + "nodeType": "RevertStatement", + "src": "5767:22:40" + } + }, + { + "id": 32739, + "nodeType": "PlaceholderStatement", + "src": "5791:1:40" + } + ] + }, + "name": "onlyOwner", + "nameLocation": "5711:9:40", + "parameters": { + "id": 32727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32726, + "mutability": "mutable", + "name": "id", + "nameLocation": "5726:2:40", + "nodeType": "VariableDeclaration", + "scope": 32741, + "src": "5721:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32725, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5721:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5720:9:40" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 32763, + "nodeType": "ModifierDefinition", + "src": "5800:158:40", + "nodes": [], + "body": { + "id": 32762, + "nodeType": "Block", + "src": "5856:102:40", + "nodes": [], + "statements": [ + { + "condition": { + "id": 32754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5866:42:40", + "subExpression": { + "arguments": [ + { + "id": 32749, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32743, + "src": "5881:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 32750, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5885:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 32751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5889:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5885:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 32752, + "name": "permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32746, + "src": "5897:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + ], + "id": 32748, + "name": "hasPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34048, + "src": "5867:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$_t_enum$_Permission_$32496_$returns$_t_bool_$", + "typeString": "function (uint256,address,enum DNft.Permission) view returns (bool)" + } + }, + "id": 32753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5867:41:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32760, + "nodeType": "IfStatement", + "src": "5862:88:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 32756, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32743, + "src": "5935:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32757, + "name": "permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32746, + "src": "5939:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + ], + "id": 32755, + "name": "MissingPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32705, + "src": "5917:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_enum$_Permission_$32496_$returns$__$", + "typeString": "function (uint256,enum DNft.Permission) pure" + } + }, + "id": 32758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5917:33:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32759, + "nodeType": "RevertStatement", + "src": "5910:40:40" + } + }, + { + "id": 32761, + "nodeType": "PlaceholderStatement", + "src": "5952:1:40" + } + ] + }, + "name": "withPermission", + "nameLocation": "5809:14:40", + "parameters": { + "id": 32747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32743, + "mutability": "mutable", + "name": "id", + "nameLocation": "5829:2:40", + "nodeType": "VariableDeclaration", + "scope": 32763, + "src": "5824:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32742, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5824:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32746, + "mutability": "mutable", + "name": "permission", + "nameLocation": "5844:10:40", + "nodeType": "VariableDeclaration", + "scope": 32763, + "src": "5833:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + }, + "typeName": { + "id": 32745, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32744, + "name": "Permission", + "nameLocations": [ + "5833:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32496, + "src": "5833:10:40" + }, + "referencedDeclaration": 32496, + "src": "5833:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + }, + "visibility": "internal" + } + ], + "src": "5823:32:40" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 32780, + "nodeType": "ModifierDefinition", + "src": "5961:97:40", + "nodes": [], + "body": { + "id": 32779, + "nodeType": "Block", + "src": "5988:70:40", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 32772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 32767, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "5998:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 32769, + "indexExpression": { + "id": 32768, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32765, + "src": "6006:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5998:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 32770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6010:8:40", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 32486, + "src": "5998:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 32771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6022:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5998:29:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32777, + "nodeType": "IfStatement", + "src": "5994:56:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 32774, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32765, + "src": "6047:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32773, + "name": "IsInactive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32652, + "src": "6036:10:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 32775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6036:14:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32776, + "nodeType": "RevertStatement", + "src": "6029:21:40" + } + }, + { + "id": 32778, + "nodeType": "PlaceholderStatement", + "src": "6052:1:40" + } + ] + }, + "name": "isActive", + "nameLocation": "5970:8:40", + "parameters": { + "id": 32766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32765, + "mutability": "mutable", + "name": "id", + "nameLocation": "5984:2:40", + "nodeType": "VariableDeclaration", + "scope": 32780, + "src": "5979:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32764, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5979:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5978:9:40" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 32797, + "nodeType": "ModifierDefinition", + "src": "6061:96:40", + "nodes": [], + "body": { + "id": 32796, + "nodeType": "Block", + "src": "6090:67:40", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 32789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 32784, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "6100:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 32786, + "indexExpression": { + "id": 32785, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32782, + "src": "6108:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6100:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 32787, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6112:8:40", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 32486, + "src": "6100:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 32788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6124:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6100:28:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32794, + "nodeType": "IfStatement", + "src": "6096:53:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 32791, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32782, + "src": "6146:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32790, + "name": "IsActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32648, + "src": "6137:8:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 32792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6137:12:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32793, + "nodeType": "RevertStatement", + "src": "6130:19:40" + } + }, + { + "id": 32795, + "nodeType": "PlaceholderStatement", + "src": "6151:1:40" + } + ] + }, + "name": "isInactive", + "nameLocation": "6070:10:40", + "parameters": { + "id": 32783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32782, + "mutability": "mutable", + "name": "id", + "nameLocation": "6086:2:40", + "nodeType": "VariableDeclaration", + "scope": 32797, + "src": "6081:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32781, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6081:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6080:9:40" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 32859, + "nodeType": "FunctionDefinition", + "src": "6161:467:40", + "nodes": [], + "body": { + "id": 32858, + "nodeType": "Block", + "src": "6283:345:40", + "nodes": [], + "statements": [ + { + "expression": { + "id": 32815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32811, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "6291:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 32813, + "name": "_dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32799, + "src": "6320:5:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 32812, + "name": "Dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34418, + "src": "6315:4:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Dyad_$34418_$", + "typeString": "type(contract Dyad)" + } + }, + "id": 32814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6315:11:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "src": "6291:35:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 32816, + "nodeType": "ExpressionStatement", + "src": "6291:35:40" + }, + { + "expression": { + "id": 32821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32817, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32536, + "src": "6334:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAggregatorV3_$34464", + "typeString": "contract IAggregatorV3" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 32819, + "name": "_oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32801, + "src": "6372:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 32818, + "name": "IAggregatorV3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34464, + "src": "6358:13:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAggregatorV3_$34464_$", + "typeString": "type(contract IAggregatorV3)" + } + }, + "id": 32820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6358:22:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAggregatorV3_$34464", + "typeString": "contract IAggregatorV3" + } + }, + "src": "6334:46:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAggregatorV3_$34464", + "typeString": "contract IAggregatorV3" + } + }, + "id": 32822, + "nodeType": "ExpressionStatement", + "src": "6334:46:40" + }, + { + "expression": { + "id": 32826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32823, + "name": "lastEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32462, + "src": "6388:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 32824, + "name": "_getLatestEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34335, + "src": "6412:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", + "typeString": "function () view returns (int256)" + } + }, + "id": 32825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6412:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "6388:44:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 32827, + "nodeType": "ExpressionStatement", + "src": "6388:44:40" + }, + { + "body": { + "id": 32856, + "nodeType": "Block", + "src": "6485:139:40", + "statements": [ + { + "assignments": [ + 32840, + 32843 + ], + "declarations": [ + { + "constant": false, + "id": 32840, + "mutability": "mutable", + "name": "id", + "nameLocation": "6501:2:40", + "nodeType": "VariableDeclaration", + "scope": 32856, + "src": "6496:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32839, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6496:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32843, + "mutability": "mutable", + "name": "nft", + "nameLocation": "6516:3:40", + "nodeType": "VariableDeclaration", + "scope": 32856, + "src": "6505:14:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 32842, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32841, + "name": "Nft", + "nameLocations": [ + "6505:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "6505:3:40" + }, + "referencedDeclaration": 32487, + "src": "6505:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 32849, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 32845, + "name": "_insiders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32804, + "src": "6532:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 32847, + "indexExpression": { + "id": 32846, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32829, + "src": "6542:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6532:12:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 32844, + "name": "_mintNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32959, + "src": "6523:8:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_struct$_Nft_$32487_memory_ptr_$", + "typeString": "function (address) returns (uint256,struct DNft.Nft memory)" + } + }, + "id": 32848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6523:22:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_struct$_Nft_$32487_memory_ptr_$", + "typeString": "tuple(uint256,struct DNft.Nft memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6495:50:40" + }, + { + "expression": { + "id": 32854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 32850, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "6597:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 32852, + "indexExpression": { + "id": 32851, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32840, + "src": "6605:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6597:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 32853, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32843, + "src": "6611:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "src": "6597:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 32855, + "nodeType": "ExpressionStatement", + "src": "6597:17:40" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32832, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32829, + "src": "6458:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 32833, + "name": "_insiders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32804, + "src": "6462:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 32834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6472:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6462:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6458:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32857, + "initializationExpression": { + "assignments": [ + 32829 + ], + "declarations": [ + { + "constant": false, + "id": 32829, + "mutability": "mutable", + "name": "i", + "nameLocation": "6451:1:40", + "nodeType": "VariableDeclaration", + "scope": 32857, + "src": "6446:6:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32828, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6446:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 32831, + "initialValue": { + "hexValue": "30", + "id": 32830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6455:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6446:10:40" + }, + "loopExpression": { + "expression": { + "id": 32837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6480:3:40", + "subExpression": { + "id": 32836, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32829, + "src": "6480:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32838, + "nodeType": "ExpressionStatement", + "src": "6480:3:40" + }, + "nodeType": "ForStatement", + "src": "6441:183:40" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "44796164204e4654", + "id": 32807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6263:10:40", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6b6c4d0637d2dd4171f71c55cc7d61dcd77e809816f0407abac819b5e2bc807a", + "typeString": "literal_string \"Dyad NFT\"" + }, + "value": "Dyad NFT" + }, + { + "hexValue": "644e4654", + "id": 32808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6275:6:40", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ecbb2b47750a267400d751ad997fd9786935824b09e6a247be386751898ff58f", + "typeString": "literal_string \"dNFT\"" + }, + "value": "dNFT" + } + ], + "id": 32809, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 32806, + "name": "ERC721", + "nameLocations": [ + "6256:6:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 24670, + "src": "6256:6:40" + }, + "nodeType": "ModifierInvocation", + "src": "6256:26:40" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 32805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32799, + "mutability": "mutable", + "name": "_dyad", + "nameLocation": "6188:5:40", + "nodeType": "VariableDeclaration", + "scope": 32859, + "src": "6180:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6180:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32801, + "mutability": "mutable", + "name": "_oracle", + "nameLocation": "6209:7:40", + "nodeType": "VariableDeclaration", + "scope": 32859, + "src": "6201:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6201:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32804, + "mutability": "mutable", + "name": "_insiders", + "nameLocation": "6242:9:40", + "nodeType": "VariableDeclaration", + "scope": 32859, + "src": "6225:26:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 32802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6225:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 32803, + "nodeType": "ArrayTypeName", + "src": "6225:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "6172:83:40" + }, + "returnParameters": { + "id": 32810, + "nodeType": "ParameterList", + "parameters": [], + "src": "6283:0:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 32912, + "nodeType": "FunctionDefinition", + "src": "6660:350:40", + "nodes": [], + "body": { + "id": 32911, + "nodeType": "Block", + "src": "6718:292:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 32867 + ], + "declarations": [ + { + "constant": false, + "id": 32867, + "mutability": "mutable", + "name": "newDyad", + "nameLocation": "6730:7:40", + "nodeType": "VariableDeclaration", + "scope": 32911, + "src": "6726:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32866, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "6726:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 32872, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 32869, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6751:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 32870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6755:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6751:9:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32868, + "name": "_eth2dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34322, + "src": "6741:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_int256_$", + "typeString": "function (uint256) view returns (int256)" + } + }, + "id": 32871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6741:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6726:35:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 32875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32873, + "name": "newDyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32867, + "src": "6773:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 32874, + "name": "MIN_MINT_DYAD_DEPOSIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32436, + "src": "6783:21:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "6773:31:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32881, + "nodeType": "IfStatement", + "src": "6769:88:40", + "trueBody": { + "id": 32880, + "nodeType": "Block", + "src": "6806:51:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 32877, + "name": "newDyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32867, + "src": "6846:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 32876, + "name": "NotEnoughToCoverDepositMinimum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32664, + "src": "6815:30:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$__$", + "typeString": "function (int256) pure" + } + }, + "id": 32878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6815:39:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32879, + "nodeType": "RevertStatement", + "src": "6808:46:40" + } + ] + } + }, + { + "assignments": [ + 32883, + 32886 + ], + "declarations": [ + { + "constant": false, + "id": 32883, + "mutability": "mutable", + "name": "id", + "nameLocation": "6870:2:40", + "nodeType": "VariableDeclaration", + "scope": 32911, + "src": "6865:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32882, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6865:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32886, + "mutability": "mutable", + "name": "nft", + "nameLocation": "6885:3:40", + "nodeType": "VariableDeclaration", + "scope": 32911, + "src": "6874:14:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 32885, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32884, + "name": "Nft", + "nameLocations": [ + "6874:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "6874:3:40" + }, + "referencedDeclaration": 32487, + "src": "6874:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 32890, + "initialValue": { + "arguments": [ + { + "id": 32888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32861, + "src": "6901:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 32887, + "name": "_mintNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32959, + "src": "6892:8:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_struct$_Nft_$32487_memory_ptr_$", + "typeString": "function (address) returns (uint256,struct DNft.Nft memory)" + } + }, + "id": 32889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6892:12:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_struct$_Nft_$32487_memory_ptr_$", + "typeString": "tuple(uint256,struct DNft.Nft memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6864:40:40" + }, + { + "expression": { + "id": 32895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 32891, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32886, + "src": "6913:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 32893, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6917:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "6913:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 32894, + "name": "newDyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32867, + "src": "6928:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "6913:22:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 32896, + "nodeType": "ExpressionStatement", + "src": "6913:22:40" + }, + { + "expression": { + "id": 32901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 32897, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32886, + "src": "6943:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 32899, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6947:8:40", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 32486, + "src": "6943:12:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 32900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6958:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6943:19:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32902, + "nodeType": "ExpressionStatement", + "src": "6943:19:40" + }, + { + "expression": { + "id": 32907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 32903, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "6970:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 32905, + "indexExpression": { + "id": 32904, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32883, + "src": "6978:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6970:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 32906, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32886, + "src": "6985:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "src": "6970:18:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 32908, + "nodeType": "ExpressionStatement", + "src": "6970:18:40" + }, + { + "expression": { + "id": 32909, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32883, + "src": "7003:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 32865, + "id": 32910, + "nodeType": "Return", + "src": "6996:9:40" + } + ] + }, + "functionSelector": "6a627842", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "6669:4:40", + "parameters": { + "id": 32862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32861, + "mutability": "mutable", + "name": "to", + "nameLocation": "6682:2:40", + "nodeType": "VariableDeclaration", + "scope": 32912, + "src": "6674:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32860, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6674:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6673:12:40" + }, + "returnParameters": { + "id": 32865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32864, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 32912, + "src": "6712:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32863, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6712:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6711:6:40" + }, + "scope": 34366, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 32959, + "nodeType": "FunctionDefinition", + "src": "7041:319:40", + "nodes": [], + "body": { + "id": 32958, + "nodeType": "Block", + "src": "7106:254:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 32923 + ], + "declarations": [ + { + "constant": false, + "id": 32923, + "mutability": "mutable", + "name": "id", + "nameLocation": "7119:2:40", + "nodeType": "VariableDeclaration", + "scope": 32958, + "src": "7114:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32922, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7114:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 32926, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 32924, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24893, + "src": "7124:11:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 32925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7124:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7114:23:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32927, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "7149:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 32928, + "name": "MAX_SUPPLY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32424, + "src": "7155:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7149:16:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32934, + "nodeType": "IfStatement", + "src": "7145:52:40", + "trueBody": { + "id": 32933, + "nodeType": "Block", + "src": "7167:30:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 32930, + "name": "ReachedMaxSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32620, + "src": "7176:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 32931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7176:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32932, + "nodeType": "RevertStatement", + "src": "7169:25:40" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 32936, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32914, + "src": "7210:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 32937, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "7214:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32935, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24326, + "src": "7204:5:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 32938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7204:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32939, + "nodeType": "ExpressionStatement", + "src": "7204:13:40" + }, + { + "assignments": [ + 32942 + ], + "declarations": [ + { + "constant": false, + "id": 32942, + "mutability": "mutable", + "name": "nft", + "nameLocation": "7265:3:40", + "nodeType": "VariableDeclaration", + "scope": 32958, + "src": "7254:14:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 32941, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32940, + "name": "Nft", + "nameLocations": [ + "7254:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "7254:3:40" + }, + "referencedDeclaration": 32487, + "src": "7254:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 32943, + "nodeType": "VariableDeclarationStatement", + "src": "7254:14:40" + }, + { + "expression": { + "arguments": [ + { + "id": 32945, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32942, + "src": "7284:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + { + "id": 32946, + "name": "XP_MINT_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32442, + "src": "7289:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32944, + "name": "_addXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34175, + "src": "7277:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" + } + }, + "id": 32947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7277:27:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32948, + "nodeType": "ExpressionStatement", + "src": "7277:27:40" + }, + { + "eventCall": { + "arguments": [ + { + "id": 32950, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32914, + "src": "7324:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 32951, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "7328:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32949, + "name": "Minted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32542, + "src": "7317:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 32952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7317:14:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32953, + "nodeType": "EmitStatement", + "src": "7312:19:40" + }, + { + "expression": { + "components": [ + { + "id": 32954, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "7347:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32955, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32942, + "src": "7351:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + } + ], + "id": 32956, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7346:9:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_struct$_Nft_$32487_memory_ptr_$", + "typeString": "tuple(uint256,struct DNft.Nft memory)" + } + }, + "functionReturnParameters": 32921, + "id": 32957, + "nodeType": "Return", + "src": "7339:16:40" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintNft", + "nameLocation": "7050:8:40", + "parameters": { + "id": 32915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32914, + "mutability": "mutable", + "name": "to", + "nameLocation": "7067:2:40", + "nodeType": "VariableDeclaration", + "scope": 32959, + "src": "7059:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32913, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7059:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7058:12:40" + }, + "returnParameters": { + "id": 32921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32917, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 32959, + "src": "7088:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32916, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7088:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32920, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 32959, + "src": "7094:10:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 32919, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 32918, + "name": "Nft", + "nameLocations": [ + "7094:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "7094:3:40" + }, + "referencedDeclaration": 32487, + "src": "7094:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "src": "7087:18:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "id": 33003, + "nodeType": "FunctionDefinition", + "src": "7399:321:40", + "nodes": [], + "body": { + "id": 33002, + "nodeType": "Block", + "src": "7510:210:40", + "nodes": [], + "statements": [ + { + "expression": { + "id": 32979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 32974, + "name": "_idToBlockOfLastDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32530, + "src": "7518:23:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 32976, + "indexExpression": { + "id": 32975, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32961, + "src": "7542:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7518:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 32977, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7548:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 32978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7554:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "7548:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7518:42:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32980, + "nodeType": "ExpressionStatement", + "src": "7518:42:40" + }, + { + "assignments": [ + 32982 + ], + "declarations": [ + { + "constant": false, + "id": 32982, + "mutability": "mutable", + "name": "newDeposit", + "nameLocation": "7572:10:40", + "nodeType": "VariableDeclaration", + "scope": 33002, + "src": "7568:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32981, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "7568:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 32987, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 32984, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7601:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 32985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7605:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "7601:9:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32983, + "name": "_eth2dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34322, + "src": "7591:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_int256_$", + "typeString": "function (uint256) view returns (int256)" + } + }, + "id": 32986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7591:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7568:43:40" + }, + { + "expression": { + "id": 32993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 32988, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "7619:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 32990, + "indexExpression": { + "id": 32989, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32961, + "src": "7627:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7619:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 32991, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7631:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "7619:19:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 32992, + "name": "newDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32982, + "src": "7642:10:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "7619:33:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 32994, + "nodeType": "ExpressionStatement", + "src": "7619:33:40" + }, + { + "eventCall": { + "arguments": [ + { + "id": 32996, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32961, + "src": "7675:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32997, + "name": "newDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32982, + "src": "7679:10:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 32995, + "name": "Exchanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32570, + "src": "7665:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_int256_$returns$__$", + "typeString": "function (uint256,int256)" + } + }, + "id": 32998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7665:25:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32999, + "nodeType": "EmitStatement", + "src": "7660:30:40" + }, + { + "expression": { + "id": 33000, + "name": "newDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32982, + "src": "7705:10:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 32973, + "id": 33001, + "nodeType": "Return", + "src": "7698:17:40" + } + ] + }, + "functionSelector": "53556559", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 32964, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32961, + "src": "7450:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 32965, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "7454:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 32966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7465:8:40", + "memberName": "EXCHANGE", + "nodeType": "MemberAccess", + "referencedDeclaration": 32490, + "src": "7454:19:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 32967, + "kind": "modifierInvocation", + "modifierName": { + "id": 32963, + "name": "withPermission", + "nameLocations": [ + "7435:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "7435:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "7435:39:40" + }, + { + "arguments": [ + { + "id": 32969, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32961, + "src": "7484:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 32970, + "kind": "modifierInvocation", + "modifierName": { + "id": 32968, + "name": "isActive", + "nameLocations": [ + "7475:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "7475:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "7475:12:40" + } + ], + "name": "exchange", + "nameLocation": "7408:8:40", + "parameters": { + "id": 32962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32961, + "mutability": "mutable", + "name": "id", + "nameLocation": "7422:2:40", + "nodeType": "VariableDeclaration", + "scope": 33003, + "src": "7417:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7417:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7416:9:40" + }, + "returnParameters": { + "id": 32973, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32972, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33003, + "src": "7505:3:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 32971, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "7505:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7504:5:40" + }, + "scope": 34366, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 33094, + "nodeType": "FunctionDefinition", + "src": "7743:621:40", + "nodes": [], + "body": { + "id": 33093, + "nodeType": "Block", + "src": "7874:490:40", + "nodes": [], + "statements": [ + { + "expression": { + "id": 33025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33020, + "name": "_idToBlockOfLastDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32530, + "src": "7883:23:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 33022, + "indexExpression": { + "id": 33021, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33005, + "src": "7907:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7883:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 33023, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7913:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 33024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7919:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "7913:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7883:42:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33026, + "nodeType": "ExpressionStatement", + "src": "7883:42:40" + }, + { + "assignments": [ + 33029 + ], + "declarations": [ + { + "constant": false, + "id": 33029, + "mutability": "mutable", + "name": "nft", + "nameLocation": "7945:3:40", + "nodeType": "VariableDeclaration", + "scope": 33093, + "src": "7933:15:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33028, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33027, + "name": "Nft", + "nameLocations": [ + "7933:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "7933:3:40" + }, + "referencedDeclaration": 32487, + "src": "7933:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33033, + "initialValue": { + "baseExpression": { + "id": 33030, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "7951:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33032, + "indexExpression": { + "id": 33031, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33005, + "src": "7959:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7951:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7933:29:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33034, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "7974:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 33035, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33029, + "src": "7983:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7987:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "7983:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7974:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33043, + "nodeType": "IfStatement", + "src": "7970:73:40", + "trueBody": { + "id": 33042, + "nodeType": "Block", + "src": "7999:44:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33039, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8033:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33038, + "name": "ExceedsWithdrawalBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32680, + "src": "8008:24:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 33040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8008:32:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33041, + "nodeType": "RevertStatement", + "src": "8001:39:40" + } + ] + } + }, + { + "id": 33050, + "nodeType": "UncheckedBlock", + "src": "8050:45:40", + "statements": [ + { + "expression": { + "id": 33048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33044, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33029, + "src": "8068:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8072:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "8068:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 33047, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8086:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8068:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33049, + "nodeType": "ExpressionStatement", + "src": "8068:24:40" + } + ] + }, + { + "expression": { + "id": 33057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33051, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33029, + "src": "8130:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33053, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8134:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "8130:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33054, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8148:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8155:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "8148:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" + } + }, + "id": 33056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:17:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "8130:35:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33058, + "nodeType": "ExpressionStatement", + "src": "8130:35:40" + }, + { + "assignments": [ + 33060 + ], + "declarations": [ + { + "constant": false, + "id": 33060, + "mutability": "mutable", + "name": "success", + "nameLocation": "8178:7:40", + "nodeType": "VariableDeclaration", + "scope": 33093, + "src": "8173:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33059, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8173:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33071, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 33063, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8206:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 33064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8210:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8206:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 33067, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8226:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DNft_$34366", + "typeString": "contract DNft" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DNft_$34366", + "typeString": "contract DNft" + } + ], + "id": 33066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8218:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 33065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8218:7:40", + "typeDescriptions": {} + } + }, + "id": 33068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8218:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33069, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8233:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 33061, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "8188:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 33062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8193:12:40", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 30949, + "src": "8188:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 33070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8173:67:40" + }, + { + "expression": { + "arguments": [ + { + "id": 33073, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33060, + "src": "8256:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8248:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 33074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8248:16:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33075, + "nodeType": "ExpressionStatement", + "src": "8248:16:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 33081, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8290:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DNft_$34366", + "typeString": "contract DNft" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DNft_$34366", + "typeString": "contract DNft" + } + ], + "id": 33080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8282:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 33079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8282:7:40", + "typeDescriptions": {} + } + }, + "id": 33082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8282:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33083, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8297:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 33076, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "8272:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 33078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8277:4:40", + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 34417, + "src": "8272:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 33084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8272:32:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33085, + "nodeType": "ExpressionStatement", + "src": "8272:32:40" + }, + { + "eventCall": { + "arguments": [ + { + "id": 33087, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33005, + "src": "8327:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33088, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8331:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33086, + "name": "Deposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32548, + "src": "8317:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 33089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8317:21:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33090, + "nodeType": "EmitStatement", + "src": "8312:26:40" + }, + { + "expression": { + "id": 33091, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33007, + "src": "8353:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 33019, + "id": 33092, + "nodeType": "Return", + "src": "8346:13:40" + } + ] + }, + "functionSelector": "e2bbb158", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 33010, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33005, + "src": "7822:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 33011, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "7826:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7837:7:40", + "memberName": "DEPOSIT", + "nodeType": "MemberAccess", + "referencedDeclaration": 32491, + "src": "7826:18:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 33013, + "kind": "modifierInvocation", + "modifierName": { + "id": 33009, + "name": "withPermission", + "nameLocations": [ + "7807:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "7807:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "7807:38:40" + }, + { + "arguments": [ + { + "id": 33015, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33005, + "src": "7855:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33016, + "kind": "modifierInvocation", + "modifierName": { + "id": 33014, + "name": "isActive", + "nameLocations": [ + "7846:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "7846:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "7846:12:40" + } + ], + "name": "deposit", + "nameLocation": "7752:7:40", + "parameters": { + "id": 33008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33005, + "mutability": "mutable", + "name": "id", + "nameLocation": "7772:2:40", + "nodeType": "VariableDeclaration", + "scope": 33094, + "src": "7767:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7767:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33007, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7787:6:40", + "nodeType": "VariableDeclaration", + "scope": 33094, + "src": "7782:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7782:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7759:38:40" + }, + "returnParameters": { + "id": 33019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33018, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33094, + "src": "7868:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33017, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7868:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7867:6:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 33160, + "nodeType": "FunctionDefinition", + "src": "8437:536:40", + "nodes": [], + "body": { + "id": 33159, + "nodeType": "Block", + "src": "8587:386:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33114, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33100, + "src": "8603:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 33115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8613:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8603:11:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33113, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8595:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 33117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8595:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33118, + "nodeType": "ExpressionStatement", + "src": "8595:20:40" + }, + { + "assignments": [ + 33121 + ], + "declarations": [ + { + "constant": false, + "id": 33121, + "mutability": "mutable", + "name": "from", + "nameLocation": "8680:4:40", + "nodeType": "VariableDeclaration", + "scope": 33159, + "src": "8668:16:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33120, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33119, + "name": "Nft", + "nameLocations": [ + "8668:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "8668:3:40" + }, + "referencedDeclaration": 32487, + "src": "8668:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33125, + "initialValue": { + "baseExpression": { + "id": 33122, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "8687:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33124, + "indexExpression": { + "id": 33123, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33096, + "src": "8695:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8687:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8668:33:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33126, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33100, + "src": "8713:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 33127, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33121, + "src": "8723:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33128, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8728:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "8723:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "8713:22:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33136, + "nodeType": "IfStatement", + "src": "8709:75:40", + "trueBody": { + "id": 33135, + "nodeType": "Block", + "src": "8737:47:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 33131, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33121, + "src": "8768:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8773:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "8768:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33130, + "name": "ExceedsDepositBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32676, + "src": "8746:21:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$__$", + "typeString": "function (int256) pure" + } + }, + "id": 33133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8746:35:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33134, + "nodeType": "RevertStatement", + "src": "8739:42:40" + } + ] + } + }, + { + "id": 33143, + "nodeType": "UncheckedBlock", + "src": "8791:52:40", + "statements": [ + { + "expression": { + "id": 33141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33137, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33121, + "src": "8809:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8814:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "8809:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 33140, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33100, + "src": "8833:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "8809:31:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33142, + "nodeType": "ExpressionStatement", + "src": "8809:31:40" + } + ] + }, + { + "expression": { + "id": 33149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 33144, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "8876:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33146, + "indexExpression": { + "id": 33145, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33098, + "src": "8884:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8876:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 33147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8889:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "8876:20:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 33148, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33100, + "src": "8900:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "8876:31:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33150, + "nodeType": "ExpressionStatement", + "src": "8876:31:40" + }, + { + "eventCall": { + "arguments": [ + { + "id": 33152, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33096, + "src": "8926:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33153, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33098, + "src": "8933:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33154, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33100, + "src": "8938:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33151, + "name": "Moved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32578, + "src": "8920:5:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_int256_$returns$__$", + "typeString": "function (uint256,uint256,int256)" + } + }, + "id": 33155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8920:26:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33156, + "nodeType": "EmitStatement", + "src": "8915:31:40" + }, + { + "expression": { + "id": 33157, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33100, + "src": "8961:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 33112, + "id": 33158, + "nodeType": "Return", + "src": "8954:14:40" + } + ] + }, + "functionSelector": "1849c73a", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 33103, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33096, + "src": "8533:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 33104, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "8540:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8551:4:40", + "memberName": "MOVE", + "nodeType": "MemberAccess", + "referencedDeclaration": 32492, + "src": "8540:15:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 33106, + "kind": "modifierInvocation", + "modifierName": { + "id": 33102, + "name": "withPermission", + "nameLocations": [ + "8518:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "8518:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "8518:38:40" + }, + { + "arguments": [ + { + "id": 33108, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33096, + "src": "8566:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33109, + "kind": "modifierInvocation", + "modifierName": { + "id": 33107, + "name": "isActive", + "nameLocations": [ + "8557:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "8557:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "8557:15:40" + } + ], + "name": "move", + "nameLocation": "8446:4:40", + "parameters": { + "id": 33101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33096, + "mutability": "mutable", + "name": "_from", + "nameLocation": "8463:5:40", + "nodeType": "VariableDeclaration", + "scope": 33160, + "src": "8458:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33095, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8458:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33098, + "mutability": "mutable", + "name": "_to", + "nameLocation": "8481:3:40", + "nodeType": "VariableDeclaration", + "scope": 33160, + "src": "8476:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33097, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8476:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33100, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "8497:7:40", + "nodeType": "VariableDeclaration", + "scope": 33160, + "src": "8492:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 33099, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "8492:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "8450:58:40" + }, + "returnParameters": { + "id": 33112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33111, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33160, + "src": "8582:3:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 33110, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "8582:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "8581:5:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 33301, + "nodeType": "FunctionDefinition", + "src": "9014:1117:40", + "nodes": [], + "body": { + "id": 33300, + "nodeType": "Block", + "src": "9173:958:40", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 33179, + "name": "_idToBlockOfLastDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32530, + "src": "9185:23:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 33181, + "indexExpression": { + "id": 33180, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33162, + "src": "9209:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9185:29:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 33182, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "9218:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 33183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9224:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "9218:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9185:45:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33191, + "nodeType": "IfStatement", + "src": "9181:121:40", + "trueBody": { + "id": 33190, + "nodeType": "Block", + "src": "9232:70:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 33186, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "9286:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 33187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9292:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "9286:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33185, + "name": "CannotDepositAndWithdrawInSameBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32709, + "src": "9250:35:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 33188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9250:49:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33189, + "nodeType": "RevertStatement", + "src": "9243:56:40" + } + ] + } + }, + { + "assignments": [ + 33194 + ], + "declarations": [ + { + "constant": false, + "id": 33194, + "mutability": "mutable", + "name": "nft", + "nameLocation": "9349:3:40", + "nodeType": "VariableDeclaration", + "scope": 33300, + "src": "9337:15:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33193, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33192, + "name": "Nft", + "nameLocations": [ + "9337:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "9337:3:40" + }, + "referencedDeclaration": 32487, + "src": "9337:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33198, + "initialValue": { + "baseExpression": { + "id": 33195, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "9355:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33197, + "indexExpression": { + "id": 33196, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33162, + "src": "9363:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9355:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9337:31:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33199, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "9380:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9387:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "9380:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" + } + }, + "id": 33201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9380:17:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 33202, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33194, + "src": "9400:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33203, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9404:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "9400:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "9380:31:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33211, + "nodeType": "IfStatement", + "src": "9376:83:40", + "trueBody": { + "id": 33210, + "nodeType": "Block", + "src": "9413:46:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 33206, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33194, + "src": "9444:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33207, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9448:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "9444:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33205, + "name": "ExceedsDepositBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32676, + "src": "9422:21:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$__$", + "typeString": "function (int256) pure" + } + }, + "id": 33208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9422:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33209, + "nodeType": "RevertStatement", + "src": "9415:41:40" + } + ] + } + }, + { + "assignments": [ + 33213 + ], + "declarations": [ + { + "constant": false, + "id": 33213, + "mutability": "mutable", + "name": "collatVault", + "nameLocation": "9471:11:40", + "nodeType": "VariableDeclaration", + "scope": 33300, + "src": "9466:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33212, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9466:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33226, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 33216, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9496:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DNft_$34366", + "typeString": "contract DNft" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DNft_$34366", + "typeString": "contract DNft" + } + ], + "id": 33215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9488:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 33214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9488:7:40", + "typeDescriptions": {} + } + }, + "id": 33217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9488:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 33218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9502:7:40", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "9488:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "316538", + "id": 33219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9510:3:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "1e8" + }, + "src": "9488:25:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33221, + "name": "_getLatestEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34335, + "src": "9516:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", + "typeString": "function () view returns (int256)" + } + }, + "id": 33222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9516:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9537:9:40", + "memberName": "toUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 27443, + "src": "9516:30:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$bound_to$_t_int256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 33224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9516:32:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9488:60:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9466:82:40" + }, + { + "assignments": [ + 33228 + ], + "declarations": [ + { + "constant": false, + "id": 33228, + "mutability": "mutable", + "name": "newCollatRatio", + "nameLocation": "9561:14:40", + "nodeType": "VariableDeclaration", + "scope": 33300, + "src": "9556:19:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33227, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9556:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33237, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33231, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "9601:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 33232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9606:11:40", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 30777, + "src": "9601:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 33233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9601:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 33234, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "9622:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9601:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 33229, + "name": "collatVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33213, + "src": "9578:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9590:10:40", + "memberName": "divWadDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 31199, + "src": "9578:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 33236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9578:51:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9556:73:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33238, + "name": "newCollatRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33228, + "src": "9641:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 33239, + "name": "MIN_COLLATERIZATION_RATIO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32427, + "src": "9658:25:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9641:42:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33246, + "nodeType": "IfStatement", + "src": "9637:84:40", + "trueBody": { + "id": 33245, + "nodeType": "Block", + "src": "9685:36:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33242, + "name": "newCollatRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33228, + "src": "9703:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33241, + "name": "CrTooLow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32672, + "src": "9694:8:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 33243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9694:24:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33244, + "nodeType": "RevertStatement", + "src": "9687:31:40" + } + ] + } + }, + { + "assignments": [ + 33248 + ], + "declarations": [ + { + "constant": false, + "id": 33248, + "mutability": "mutable", + "name": "averageTVL", + "nameLocation": "9733:10:40", + "nodeType": "VariableDeclaration", + "scope": 33300, + "src": "9728:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33247, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9728:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33253, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33249, + "name": "collatVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33213, + "src": "9749:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33250, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24893, + "src": "9763:11:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 33251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9763:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9749:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9728:48:40" + }, + { + "assignments": [ + 33255 ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "1372:9:31" + "declarations": [ + { + "constant": false, + "id": 33255, + "mutability": "mutable", + "name": "newWithdrawal", + "nameLocation": "9789:13:40", + "nodeType": "VariableDeclaration", + "scope": 33300, + "src": "9784:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33254, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9784:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33260, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 33256, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33194, + "src": "9805:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9809:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "9805:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 33258, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "9822:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9805:23:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9784:44:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33261, + "name": "newWithdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33255, + "src": "9840:13:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 33262, + "name": "averageTVL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33248, + "src": "9856:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9840:26:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33269, + "nodeType": "IfStatement", + "src": "9836:73:40", + "trueBody": { + "id": 33268, + "nodeType": "Block", + "src": "9868:41:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33265, + "name": "averageTVL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33248, + "src": "9895:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33264, + "name": "ExceedsAverageTVL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32656, + "src": "9877:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 33266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9877:29:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33267, + "nodeType": "RevertStatement", + "src": "9870:36:40" + } + ] + } + }, + { + "id": 33278, + "nodeType": "UncheckedBlock", + "src": "9916:56:40", + "statements": [ + { + "expression": { + "id": 33276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33270, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33194, + "src": "9934:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33272, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "9938:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "9934:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33273, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "9952:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9959:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "9952:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" + } + }, + "id": 33275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9952:17:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "9934:35:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33277, + "nodeType": "ExpressionStatement", + "src": "9934:35:40" + } + ] }, - "referencedDeclaration": 28988, - "src": "1372:9:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" - } - } - }, - "visibility": "public" - }, - { - "id": 28156, - "nodeType": "EventDefinition", - "src": "1402:57:31", - "nodes": [], - "anonymous": false, - "eventSelector": "f2b290a76feb54be358b555507421d765609171aefa0646f109a653228ff81b8", - "name": "NftMinted", - "nameLocation": "1408:9:31", - "parameters": { - "id": 28155, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 28152, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "1438:2:31", - "nodeType": "VariableDeclaration", - "scope": 28156, - "src": "1422:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "id": 33283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33279, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33194, + "src": "10004:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33281, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10008:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "10004:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33282, + "name": "newWithdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33255, + "src": "10022:13:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10004:31:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "typeName": { - "id": 28151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1422:7:31", - "stateMutability": "nonpayable", + "id": 33284, + "nodeType": "ExpressionStatement", + "src": "10004:31:40" + }, + { + "expression": { + "arguments": [ + { + "id": 33288, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33164, + "src": "10054:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33289, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "10058:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 33285, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "10044:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 33287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10049:4:40", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 34402, + "src": "10044:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 33290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10044:21:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" + "id": 33291, + "nodeType": "ExpressionStatement", + "src": "10044:21:40" }, { - "constant": false, - "id": 28154, - "indexed": true, - "mutability": "mutable", - "name": "id", - "nameLocation": "1455:2:31", - "nodeType": "VariableDeclaration", - "scope": 28156, - "src": "1442:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "eventCall": { + "arguments": [ + { + "id": 33293, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33162, + "src": "10088:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33294, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33164, + "src": "10094:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33295, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "10098:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33292, + "name": "Withdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32564, + "src": "10078:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,uint256)" + } + }, + "id": 33296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10078:27:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "typeName": { - "id": 28153, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1442:4:31", + "id": 33297, + "nodeType": "EmitStatement", + "src": "10073:32:40" + }, + { + "expression": { + "id": 33298, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33166, + "src": "10120:6:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "functionReturnParameters": 33178, + "id": 33299, + "nodeType": "Return", + "src": "10113:13:40" } - ], - "src": "1421:37:31" - } - }, - { - "id": 28164, - "nodeType": "EventDefinition", - "src": "1462:70:31", - "nodes": [], - "anonymous": false, - "eventSelector": "3a7ec3c4655340144c5d88cd1e88cf7146e64e9a6d3db1b306f130db3579fdb4", - "name": "DyadMinted", - "nameLocation": "1468:10:31", - "parameters": { - "id": 28163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28158, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "1498:2:31", - "nodeType": "VariableDeclaration", - "scope": 28164, - "src": "1482:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + ] + }, + "functionSelector": "e63697c8", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 33169, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33162, + "src": "9116:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "typeName": { - "id": 28157, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1482:7:31", - "stateMutability": "nonpayable", + { + "expression": { + "id": 33170, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "9122:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9133:8:40", + "memberName": "WITHDRAW", + "nodeType": "MemberAccess", + "referencedDeclaration": 32493, + "src": "9122:19:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" } - }, - "visibility": "internal" + } + ], + "id": 33172, + "kind": "modifierInvocation", + "modifierName": { + "id": 33168, + "name": "withPermission", + "nameLocations": [ + "9101:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "9101:14:40" }, - { - "constant": false, - "id": 28160, - "indexed": true, - "mutability": "mutable", - "name": "id", - "nameLocation": "1515:2:31", - "nodeType": "VariableDeclaration", - "scope": 28164, - "src": "1502:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28159, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1502:4:31", + "nodeType": "ModifierInvocation", + "src": "9101:41:40" + }, + { + "arguments": [ + { + "id": 33174, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33162, + "src": "9152:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" + } + ], + "id": 33175, + "kind": "modifierInvocation", + "modifierName": { + "id": 33173, + "name": "isActive", + "nameLocations": [ + "9143:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "9143:8:40" }, + "nodeType": "ModifierInvocation", + "src": "9143:14:40" + } + ], + "name": "withdraw", + "nameLocation": "9023:8:40", + "parameters": { + "id": 33167, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 28162, - "indexed": false, + "id": 33162, "mutability": "mutable", - "name": "amount", - "nameLocation": "1524:6:31", + "name": "from", + "nameLocation": "9044:4:40", "nodeType": "VariableDeclaration", - "scope": 28164, - "src": "1519:11:31", + "scope": 33301, + "src": "9039:9:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2798,44 +14955,26 @@ "typeString": "uint256" }, "typeName": { - "id": 28161, + "id": 33161, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1519:4:31", + "src": "9039:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - } - ], - "src": "1481:50:31" - } - }, - { - "id": 28172, - "nodeType": "EventDefinition", - "src": "1535:70:31", - "nodes": [], - "anonymous": false, - "eventSelector": "97c68706573f736c58fd91ea1dd5982061ea2b11e1ec1647ca0a9e7da2b3ecad", - "name": "DyadWithdrawn", - "nameLocation": "1541:13:31", - "parameters": { - "id": 28171, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 28166, - "indexed": true, + "id": 33164, "mutability": "mutable", "name": "to", - "nameLocation": "1571:2:31", + "nameLocation": "9064:2:40", "nodeType": "VariableDeclaration", - "scope": 28172, - "src": "1555:18:31", + "scope": 33301, + "src": "9056:10:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2843,10 +14982,10 @@ "typeString": "address" }, "typeName": { - "id": 28165, + "id": 33163, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1555:7:31", + "src": "9056:7:40", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2857,14 +14996,13 @@ }, { "constant": false, - "id": 28168, - "indexed": true, + "id": 33166, "mutability": "mutable", - "name": "id", - "nameLocation": "1588:2:31", + "name": "amount", + "nameLocation": "9080:6:40", "nodeType": "VariableDeclaration", - "scope": 28172, - "src": "1575:15:31", + "scope": 33301, + "src": "9075:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2872,27 +15010,33 @@ "typeString": "uint256" }, "typeName": { - "id": 28167, + "id": 33165, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1575:4:31", + "src": "9075:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "9031:60:40" + }, + "returnParameters": { + "id": 33178, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 28170, - "indexed": false, + "id": 33177, "mutability": "mutable", - "name": "amount", - "nameLocation": "1597:6:31", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 28172, - "src": "1592:11:31", + "scope": 33301, + "src": "9167:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2900,10 +15044,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28169, + "id": 33176, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1592:4:31", + "src": "9167:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2912,380 +15056,737 @@ "visibility": "internal" } ], - "src": "1554:50:31" - } + "src": "9166:6:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" }, { - "id": 28180, - "nodeType": "EventDefinition", - "src": "1608:70:31", + "id": 33397, + "nodeType": "FunctionDefinition", + "src": "10160:685:40", "nodes": [], - "anonymous": false, - "eventSelector": "b2b57d77f3386e7108afb8ee9a58008631e884cb4ff8cc775d3d5b6c77a44262", - "name": "DyadDeposited", - "nameLocation": "1614:13:31", - "parameters": { - "id": 28179, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 33396, + "nodeType": "Block", + "src": "10326:519:40", + "nodes": [], + "statements": [ { - "constant": false, - "id": 28174, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "1644:2:31", - "nodeType": "VariableDeclaration", - "scope": 28180, - "src": "1628:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "assignments": [ + 33324 + ], + "declarations": [ + { + "constant": false, + "id": 33324, + "mutability": "mutable", + "name": "nft", + "nameLocation": "10347:3:40", + "nodeType": "VariableDeclaration", + "scope": 33396, + "src": "10335:15:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33323, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33322, + "name": "Nft", + "nameLocations": [ + "10335:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "10335:3:40" + }, + "referencedDeclaration": 32487, + "src": "10335:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33328, + "initialValue": { + "baseExpression": { + "id": 33325, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "10353:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33327, + "indexExpression": { + "id": 33326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33303, + "src": "10361:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10353:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } }, - "typeName": { - "id": 28173, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1628:7:31", - "stateMutability": "nonpayable", + "nodeType": "VariableDeclarationStatement", + "src": "10335:31:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33329, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33307, + "src": "10378:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 33330, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33324, + "src": "10387:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33331, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10391:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "10387:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10378:23:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33338, + "nodeType": "IfStatement", + "src": "10374:73:40", + "trueBody": { + "id": 33337, + "nodeType": "Block", + "src": "10403:44:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33334, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33307, + "src": "10437:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33333, + "name": "ExceedsWithdrawalBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32680, + "src": "10412:24:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 33335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10412:32:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33336, + "nodeType": "RevertStatement", + "src": "10405:39:40" + } + ] + } + }, + { + "id": 33345, + "nodeType": "UncheckedBlock", + "src": "10454:45:40", + "statements": [ + { + "expression": { + "id": 33343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33339, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33324, + "src": "10472:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft storage pointer" + } + }, + "id": 33341, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10476:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "10472:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 33342, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33307, + "src": "10490:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10472:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33344, + "nodeType": "ExpressionStatement", + "src": "10472:24:40" } - }, - "visibility": "internal" + ] }, { - "constant": false, - "id": 28176, - "indexed": true, - "mutability": "mutable", - "name": "id", - "nameLocation": "1661:2:31", - "nodeType": "VariableDeclaration", - "scope": 28180, - "src": "1648:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28175, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:31", + "expression": { + "arguments": [ + { + "expression": { + "id": 33349, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10544:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 33350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10548:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10544:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33351, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33307, + "src": "10556:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 33346, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "10534:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 33348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10539:4:40", + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 34417, + "src": "10534:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 33352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10534:29:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" + "id": 33353, + "nodeType": "ExpressionStatement", + "src": "10534:29:40" }, { - "constant": false, - "id": 28178, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1670:6:31", - "nodeType": "VariableDeclaration", - "scope": 28180, - "src": "1665:11:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28177, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1665:4:31", - "typeDescriptions": { + "assignments": [ + 33355 + ], + "declarations": [ + { + "constant": false, + "id": 33355, + "mutability": "mutable", + "name": "eth", + "nameLocation": "10576:3:40", + "nodeType": "VariableDeclaration", + "scope": 33396, + "src": "10571:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33354, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10571:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33364, + "initialValue": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1627:50:31" - } - }, - { - "id": 28188, - "nodeType": "EventDefinition", - "src": "1681:70:31", - "nodes": [], - "anonymous": false, - "eventSelector": "978afd9cd3f8b45b5bc6b990498f81efbcd4bbb929648dd2eb337276971de0f2", - "name": "DyadRedeemed", - "nameLocation": "1687:12:31", - "parameters": { - "id": 28187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28182, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "1717:2:31", - "nodeType": "VariableDeclaration", - "scope": 28188, - "src": "1701:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1701:7:31", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 28184, - "indexed": true, - "mutability": "mutable", - "name": "id", - "nameLocation": "1734:2:31", - "nodeType": "VariableDeclaration", - "scope": 28188, - "src": "1721:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28183, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1721:4:31", + }, + "id": 33363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33356, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33307, + "src": "10582:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "316538", + "id": 33357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10589:3:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "1e8" + }, + "src": "10582:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33359, + "name": "_getLatestEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34335, + "src": "10595:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", + "typeString": "function () view returns (int256)" + } + }, + "id": 33360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10595:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10616:9:40", + "memberName": "toUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 27443, + "src": "10595:30:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$bound_to$_t_int256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 33362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10595:32:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10582:45:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "10571:56:40" }, { - "constant": false, - "id": 28186, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1743:6:31", - "nodeType": "VariableDeclaration", - "scope": 28188, - "src": "1738:11:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28185, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1738:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1700:50:31" - } - }, - { - "id": 28205, - "nodeType": "ModifierDefinition", - "src": "1755:124:31", - "nodes": [], - "body": { - "id": 28204, - "nodeType": "Block", - "src": "1786:93:31", - "nodes": [], - "statements": [ - { - "expression": { + "assignments": [ + 33366, + null + ], + "declarations": [ + { + "constant": false, + "id": 33366, + "mutability": "mutable", + "name": "success", + "nameLocation": "10641:7:40", + "nodeType": "VariableDeclaration", + "scope": 33396, + "src": "10636:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33365, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10636:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 33376, + "initialValue": { "arguments": [ { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28199, + "hexValue": "", + "id": 33374, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "leftExpression": { + "nodeType": "Literal", + "src": "10683:2:40", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { "arguments": [ { - "id": 28195, - "name": "id", + "id": 33369, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28190, - "src": "1813:2:31", + "referencedDeclaration": 33305, + "src": "10662:2:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "id": 28193, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1800:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_dNFT_$28870", - "typeString": "contract dNFT" - } - }, - "id": 28194, + "id": 33368, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberLocation": "1805:7:31", - "memberName": "ownerOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 24106, - "src": "1800:12:31", + "nodeType": "ElementaryTypeNameExpression", + "src": "10654:8:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 33367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10654:8:40", + "stateMutability": "payable", + "typeDescriptions": {} } }, - "id": 28196, + "id": 33370, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1800:16:31", + "src": "10654:11:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 28197, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1820:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1824:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1820:10:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "src": "1800:30:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "644e46543a204f6e6c792063616c6c61626c65206279204e4654206f776e6572", - "id": 28200, + "id": 33371, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "1832:34:31", + "memberLocation": "10666:4:40", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "10654:16:40", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_75c357c18a5002a2f295c889c42c5d277978a119e88f6d7405158a6d64cc3d4b", - "typeString": "literal_string \"dNFT: Only callable by NFT owner\"" - }, - "value": "dNFT: Only callable by NFT owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_75c357c18a5002a2f295c889c42c5d277978a119e88f6d7405158a6d64cc3d4b", - "typeString": "literal_string \"dNFT: Only callable by NFT owner\"" + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } + }, + "id": 33373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" ], - "id": 28192, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 33372, + "name": "eth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33355, + "src": "10678:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } ], - "referencedDeclaration": -18, - "src": "1792:7:31", + "src": "10654:28:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 28201, + "id": 33375, "isConstant": false, "isLValue": false, "isPure": false, @@ -3294,222 +15795,222 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1792:75:31", + "src": "10654:32:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" } }, - "id": 28202, - "nodeType": "ExpressionStatement", - "src": "1792:75:31" + "nodeType": "VariableDeclarationStatement", + "src": "10635:51:40" }, { - "id": 28203, - "nodeType": "PlaceholderStatement", - "src": "1873:1:31" - } - ] - }, - "name": "onlyNFTOwner", - "nameLocation": "1764:12:31", - "parameters": { - "id": 28191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28190, - "mutability": "mutable", - "name": "id", - "nameLocation": "1782:2:31", - "nodeType": "VariableDeclaration", - "scope": 28205, - "src": "1777:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28189, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1777:4:31", + "condition": { + "id": 33378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10720:8:40", + "subExpression": { + "id": 33377, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33366, + "src": "10721:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" - } - ], - "src": "1776:9:31" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 28220, - "nodeType": "ModifierDefinition", - "src": "1883:114:31", - "nodes": [], - "body": { - "id": 28219, - "nodeType": "Block", - "src": "1903:94:31", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ + "id": 33386, + "nodeType": "IfStatement", + "src": "10716:60:40", + "trueBody": { + "id": 33385, + "nodeType": "Block", + "src": "10730:46:40", + "statements": [ { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "errorCall": { "arguments": [ { - "id": 28210, - "name": "pool", + "expression": { + "id": 33380, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10757:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 33381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10761:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10757:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33382, + "name": "eth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "1925:4:31", + "referencedDeclaration": 33355, + "src": "10769:3:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 28209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1917:7:31", + "id": 33379, + "name": "FailedEthTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32686, + "src": "10739:17:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1917:7:31", - "typeDescriptions": {} + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) pure" } }, - "id": 28211, + "id": 33383, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1917:13:31", + "src": "10739:34:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 28212, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1934:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1938:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1934:10:31", + "id": 33384, + "nodeType": "RevertStatement", + "src": "10732:41:40" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 33388, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10797:3:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "src": "1917:27:31", + "id": 33389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10801:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10797:10:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, { - "hexValue": "644e46543a204f6e6c792063616c6c61626c6520627920506f6f6c20636f6e7472616374", - "id": 28215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1946:38:31", + "id": 33390, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33303, + "src": "10809:4:40", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_28fab7be355474d90a1a7fa81ada80d3a17da3682cf846444ae2dca84531640b", - "typeString": "literal_string \"dNFT: Only callable by Pool contract\"" - }, - "value": "dNFT: Only callable by Pool contract" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33391, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33307, + "src": "10815:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_stringliteral_28fab7be355474d90a1a7fa81ada80d3a17da3682cf846444ae2dca84531640b", - "typeString": "literal_string \"dNFT: Only callable by Pool contract\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 28207, - "name": "require", + "id": 33387, + "name": "Redeemed", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1909:7:31", + "overloadedDeclarations": [], + "referencedDeclaration": 32556, + "src": "10788:8:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" } }, - "id": 28216, + "id": 33392, "isConstant": false, "isLValue": false, "isPure": false, @@ -3518,287 +16019,443 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1909:76:31", + "src": "10788:34:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33393, + "nodeType": "EmitStatement", + "src": "10783:39:40" + }, + { + "expression": { + "id": 33394, + "name": "eth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33355, + "src": "10837:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 33321, + "id": 33395, + "nodeType": "Return", + "src": "10830:10:40" + } + ] + }, + "functionSelector": "d8780161", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 33310, + "kind": "modifierInvocation", + "modifierName": { + "id": 33309, + "name": "nonReentrant", + "nameLocations": [ + "10243:12:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31366, + "src": "10243:12:40" + }, + "nodeType": "ModifierInvocation", + "src": "10243:12:40" + }, + { + "arguments": [ + { + "id": 33312, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33303, + "src": "10271:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 33313, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "10277:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10288:6:40", + "memberName": "REDEEM", + "nodeType": "MemberAccess", + "referencedDeclaration": 32494, + "src": "10277:17:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 33315, + "kind": "modifierInvocation", + "modifierName": { + "id": 33311, + "name": "withPermission", + "nameLocations": [ + "10256:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "10256:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "10256:39:40" + }, + { + "arguments": [ + { + "id": 33317, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33303, + "src": "10305:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33318, + "kind": "modifierInvocation", + "modifierName": { + "id": 33316, + "name": "isActive", + "nameLocations": [ + "10296:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "10296:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "10296:14:40" + } + ], + "name": "redeem", + "nameLocation": "10169:6:40", + "parameters": { + "id": 33308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33303, + "mutability": "mutable", + "name": "from", + "nameLocation": "10188:4:40", + "nodeType": "VariableDeclaration", + "scope": 33397, + "src": "10183:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33302, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10183:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28217, - "nodeType": "ExpressionStatement", - "src": "1909:76:31" + "visibility": "internal" }, { - "id": 28218, - "nodeType": "PlaceholderStatement", - "src": "1991:1:31" + "constant": false, + "id": 33305, + "mutability": "mutable", + "name": "to", + "nameLocation": "10208:2:40", + "nodeType": "VariableDeclaration", + "scope": 33397, + "src": "10200:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 33304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10200:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33307, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10223:6:40", + "nodeType": "VariableDeclaration", + "scope": 33397, + "src": "10218:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33306, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10218:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } - ] + ], + "src": "10175:58:40" }, - "name": "onlyPool", - "nameLocation": "1892:8:31", - "parameters": { - "id": 28206, + "returnParameters": { + "id": 33321, "nodeType": "ParameterList", - "parameters": [], - "src": "1900:2:31" + "parameters": [ + { + "constant": false, + "id": 33320, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33397, + "src": "10320:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33319, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10320:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10319:6:40" }, + "scope": 34366, + "stateMutability": "nonpayable", "virtual": false, - "visibility": "internal" + "visibility": "external" }, { - "id": 28279, + "id": 33521, "nodeType": "FunctionDefinition", - "src": "2001:906:31", + "src": "10917:1109:40", "nodes": [], "body": { - "id": 28278, + "id": 33520, "nodeType": "Block", - "src": "2132:775:31", + "src": "10976:1050:40", "nodes": [], "statements": [ { - "expression": { - "id": 28237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28233, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "2138:4:31", + "assignments": [ + 33408 + ], + "declarations": [ + { + "constant": false, + "id": 33408, + "mutability": "mutable", + "name": "dyadTotalSupply", + "nameLocation": "10989:15:40", + "nodeType": "VariableDeclaration", + "scope": 33520, + "src": "10984:20:40", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 28235, - "name": "_dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28222, - "src": "2161:5:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10984:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], + }, + "visibility": "internal" + } + ], + "id": 33412, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28234, - "name": "DYAD", + "id": 33409, + "name": "dyad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28933, - "src": "2156:4:31", + "referencedDeclaration": 32533, + "src": "11007:4:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DYAD_$28933_$", - "typeString": "type(contract DYAD)" + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" } }, - "id": 28236, + "id": 33410, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2156:11:31", - "tryCall": false, + "memberLocation": "11012:11:40", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 30777, + "src": "11007:16:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" } }, - "src": "2138:29:31", + "id": 33411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11007:18:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28238, - "nodeType": "ExpressionStatement", - "src": "2138:29:31" + "nodeType": "VariableDeclarationStatement", + "src": "10984:41:40" }, { - "expression": { - "id": 28241, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 28239, - "name": "DEPOSIT_MINIMUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28131, - "src": "2173:15:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 28240, - "name": "depositMinimum", + "leftExpression": { + "id": 33413, + "name": "dyadTotalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28224, - "src": "2191:14:31", + "referencedDeclaration": 33408, + "src": "11092:15:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2173:32:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28242, - "nodeType": "ExpressionStatement", - "src": "2173:32:31" - }, - { - "condition": { - "id": 28243, - "name": "withInsiderAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28226, - "src": "2216:21:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 28277, - "nodeType": "IfStatement", - "src": "2212:691:31", - "trueBody": { - "id": 28276, - "nodeType": "Block", - "src": "2239:664:31", - "statements": [ - { - "expression": { - "arguments": [ - { - "hexValue": "307837454566466435443038396231333531656343433338383032326438623832333637366446343234", - "id": 28245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2331:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x7EEfFd5D089b1351ecCC388022d8b823676dF424" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28244, - "name": "_mintNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2322:8:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 28246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2322:52:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28247, - "nodeType": "ExpressionStatement", - "src": "2322:52:31" + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11111:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, + "value": "0" + }, + "src": "11092:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33420, + "nodeType": "IfStatement", + "src": "11088:59:40", + "trueBody": { + "id": 33419, + "nodeType": "Block", + "src": "11114:33:40", + "statements": [ { - "expression": { - "arguments": [ - { - "hexValue": "307843414432456144413937416433393335383446653834413563434131656633303933453435616534", - "id": 28249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2410:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xCAD2EaDA97Ad393584Fe84A5cCA1ef3093E45ae4" - } - ], + "errorCall": { + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28248, - "name": "_mintNft", + "argumentTypes": [], + "id": 33416, + "name": "DyadTotalSupplyZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2401:8:31", + "referencedDeclaration": 32624, + "src": "11123:19:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" } }, - "id": 28250, + "id": 33417, "isConstant": false, "isLValue": false, "isPure": false, @@ -3807,230 +16464,133 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2401:52:31", + "src": "11123:21:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 28251, - "nodeType": "ExpressionStatement", - "src": "2401:52:31" + "id": 33418, + "nodeType": "RevertStatement", + "src": "11116:28:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 33421, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "11159:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } }, - { - "expression": { - "arguments": [ - { - "hexValue": "307834313462363037343530373230383864303133373231623461323861303535396231413964323133", - "id": 28253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2486:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x414b60745072088d013721b4a28a0559b1A9d213" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28252, - "name": "_mintNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2477:8:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 28254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2477:52:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28255, - "nodeType": "ExpressionStatement", - "src": "2477:52:31" + "id": 33422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11165:9:40", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "11159:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "expression": { - "arguments": [ - { - "hexValue": "307833363832383237463438463845303233454534303730376445653832363230443042363335373966", - "id": 28257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2559:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x3682827F48F8E023EE40707dEe82620D0B63579f" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28256, - "name": "_mintNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2550:8:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 28258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2550:52:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28259, - "nodeType": "ExpressionStatement", - "src": "2550:52:31" + "id": 33425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33423, + "name": "timeOfLastSync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32476, + "src": "11177:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "expression": { - "arguments": [ - { - "hexValue": "307865373739466230393041463964664242336234433138456435373161643633393044663532616532", - "id": 28261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2634:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xe779Fb090AF9dfBB3b4C18Ed571ad6390Df52ae2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28260, - "name": "_mintNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2625:8:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 28262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2625:52:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28263, - "nodeType": "ExpressionStatement", - "src": "2625:52:31" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 33424, + "name": "MIN_TIME_BETWEEN_SYNC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32433, + "src": "11194:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "expression": { - "arguments": [ - { - "hexValue": "307839463931396132393265363235393466324438646231334636413441444231363931443663363064", - "id": 28265, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2705:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x9F919a292e62594f2D8db13F6A4ADB1691D6c60d" - } - ], + "src": "11177:38:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11159:56:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33431, + "nodeType": "IfStatement", + "src": "11155:87:40", + "trueBody": { + "id": 33430, + "nodeType": "Block", + "src": "11217:25:40", + "statements": [ + { + "errorCall": { + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28264, - "name": "_mintNft", + "argumentTypes": [], + "id": 33427, + "name": "SyncTooSoon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2696:8:31", + "referencedDeclaration": 32622, + "src": "11226:11:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" } }, - "id": 28266, + "id": 33428, "isConstant": false, "isLValue": false, "isPure": false, @@ -4039,114 +16599,390 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2696:52:31", + "src": "11226:13:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 28267, - "nodeType": "ExpressionStatement", - "src": "2696:52:31" + "id": 33429, + "nodeType": "RevertStatement", + "src": "11219:20:40" + } + ] + } + }, + { + "assignments": [ + 33433 + ], + "declarations": [ + { + "constant": false, + "id": 33433, + "mutability": "mutable", + "name": "newEthPrice", + "nameLocation": "11254:11:40", + "nodeType": "VariableDeclaration", + "scope": 33520, + "src": "11249:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 33432, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "11249:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 33436, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33434, + "name": "_getLatestEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34335, + "src": "11271:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", + "typeString": "function () view returns (int256)" + } + }, + "id": 33435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11249:42:40" + }, + { + "assignments": [ + 33438 + ], + "declarations": [ + { + "constant": false, + "id": 33438, + "mutability": "mutable", + "name": "priceChange", + "nameLocation": "11304:11:40", + "nodeType": "VariableDeclaration", + "scope": 33520, + "src": "11299:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 33437, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "11299:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 33445, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33440, + "name": "newEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33433, + "src": "11328:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 33441, + "name": "lastEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32462, + "src": "11342:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "11328:26:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 33443, + "name": "lastEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32462, + "src": "11356:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33439, + "name": "wadDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31445, + "src": "11321:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (int256,int256) pure returns (int256)" + } + }, + "id": 33444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11321:48:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11299:70:40" + }, + { + "assignments": [ + 33447 + ], + "declarations": [ + { + "constant": false, + "id": 33447, + "mutability": "mutable", + "name": "priceChangeAbs", + "nameLocation": "11383:14:40", + "nodeType": "VariableDeclaration", + "scope": 33520, + "src": "11378:19:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33446, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11378:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33451, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33448, + "name": "priceChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33438, + "src": "11400:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } }, + "id": 33449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11412:3:40", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 28289, + "src": "11400:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$bound_to$_t_int256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 33450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11400:17:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11378:39:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33452, + "name": "priceChangeAbs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33447, + "src": "11429:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 33453, + "name": "MIN_PRICE_CHANGE_BETWEEN_SYNC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32430, + "src": "11446:29:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11429:46:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33460, + "nodeType": "IfStatement", + "src": "11425:96:40", + "trueBody": { + "id": 33459, + "nodeType": "Block", + "src": "11477:44:40", + "statements": [ { - "expression": { + "errorCall": { "arguments": [ { - "hexValue": "307846333765633531334146324344393161373644333836363830664432446636626133426237353230", - "id": 28269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2774:42:31", + "id": 33456, + "name": "priceChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33438, + "src": "11506:11:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xF37ec513AF2CD91a76D386680fD2Df6ba3Bb7520" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } - ], - "id": 28268, - "name": "_mintNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2765:8:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 28270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2765:52:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28271, - "nodeType": "ExpressionStatement", - "src": "2765:52:31" - }, - { - "expression": { - "arguments": [ - { - "hexValue": "307865396643393345363738463242646537413061336241336433394635303545663633613638433937", - "id": 28273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2845:42:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xe9fC93E678F2Bde7A0a3bA3d39F505Ef63a68C97" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } ], - "id": 28272, - "name": "_mintNft", + "id": 33455, + "name": "PriceChangeTooSmall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "2836:8:31", + "referencedDeclaration": 32660, + "src": "11486:19:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$__$", + "typeString": "function (int256) pure" } }, - "id": 28274, + "id": 33457, "isConstant": false, "isLValue": false, "isPure": false, @@ -4155,371 +16991,598 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2836:52:31", + "src": "11486:32:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 28275, - "nodeType": "ExpressionStatement", - "src": "2836:52:31" + "id": 33458, + "nodeType": "RevertStatement", + "src": "11479:39:40" } ] } - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "hexValue": "44594144204e4654", - "id": 28229, + }, + { + "expression": { + "id": 33464, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "2112:10:31", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_adfb65d788e2cea29447054adc1fa48ecff2624202f78fa4db6acbd78bdf158e", - "typeString": "literal_string \"DYAD NFT\"" + "leftHandSide": { + "id": 33461, + "name": "timeOfLastSync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32476, + "src": "11528:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 33462, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "11547:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 33463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11553:9:40", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "11547:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "DYAD NFT" + "src": "11528:34:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "hexValue": "644e4654", - "id": 28230, + "id": 33465, + "nodeType": "ExpressionStatement", + "src": "11528:34:40" + }, + { + "expression": { + "id": 33468, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "2124:6:31", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ecbb2b47750a267400d751ad997fd9786935824b09e6a247be386751898ff58f", - "typeString": "literal_string \"dNFT\"" + "leftHandSide": { + "id": 33466, + "name": "lastEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32462, + "src": "11570:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } }, - "value": "dNFT" - } - ], - "id": 28231, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 28228, - "name": "ERC721", - "nameLocations": [ - "2105:6:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24905, - "src": "2105:6:31" + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33467, + "name": "newEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33433, + "src": "11589:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "11570:30:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33469, + "nodeType": "ExpressionStatement", + "src": "11570:30:40" }, - "nodeType": "ModifierInvocation", - "src": "2105:26:31" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 28227, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 28222, - "mutability": "mutable", - "name": "_dyad", - "nameLocation": "2021:5:31", - "nodeType": "VariableDeclaration", - "scope": 28279, - "src": "2013:13:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28221, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2013:7:31", - "stateMutability": "nonpayable", + "expression": { + "id": 33472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33470, + "name": "prevSyncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32470, + "src": "11609:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33471, + "name": "syncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32468, + "src": "11628:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11609:30:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "visibility": "internal" + "id": 33473, + "nodeType": "ExpressionStatement", + "src": "11609:30:40" }, { - "constant": false, - "id": 28224, - "mutability": "mutable", - "name": "depositMinimum", - "nameLocation": "2047:14:31", - "nodeType": "VariableDeclaration", - "scope": 28279, - "src": "2042:19:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28223, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2042:4:31", + "expression": { + "id": 33477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33474, + "name": "syncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32468, + "src": "11673:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 33475, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "11692:5:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 33476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11698:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "11692:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11673:31:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "id": 33478, + "nodeType": "ExpressionStatement", + "src": "11673:31:40" }, { - "constant": false, - "id": 28226, - "mutability": "mutable", - "name": "withInsiderAllocation", - "nameLocation": "2082:21:31", - "nodeType": "VariableDeclaration", - "scope": 28279, - "src": "2077:26:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 28225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2077:4:31", + "expression": { + "id": 33481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33479, + "name": "prevDyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32466, + "src": "11737:13:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33480, + "name": "dyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32464, + "src": "11756:9:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "11737:28:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "visibility": "internal" - } - ], - "src": "2012:92:31" - }, - "returnParameters": { - "id": 28232, - "nodeType": "ParameterList", - "parameters": [], - "src": "2132:0:31" - }, - "scope": 28870, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 28304, - "nodeType": "FunctionDefinition", - "src": "2911:170:31", - "nodes": [], - "body": { - "id": 28303, - "nodeType": "Block", - "src": "2952:129:31", - "nodes": [], - "statements": [ + "id": 33482, + "nodeType": "ExpressionStatement", + "src": "11737:28:40" + }, { "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 28287, - "name": "pool", + "id": 33490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33483, + "name": "dyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32464, + "src": "11773:9:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33485, + "name": "dyadTotalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "3002:4:31", + "referencedDeclaration": 33408, + "src": "11799:15:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + }, + "id": 33486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11815:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "11799:24:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" } + }, + "id": 33487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11799:26:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 33488, + "name": "priceChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33438, + "src": "11827:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33484, + "name": "wadMul", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31434, + "src": "11792:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (int256,int256) pure returns (int256)" + } + }, + "id": 33489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11792:47:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "11773:66:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33491, + "nodeType": "ExpressionStatement", + "src": "11773:66:40" + }, + { + "assignments": [ + 33494 + ], + "declarations": [ + { + "constant": false, + "id": 33494, + "mutability": "mutable", + "name": "nft", + "nameLocation": "11858:3:40", + "nodeType": "VariableDeclaration", + "scope": 33520, + "src": "11847:14:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33493, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33492, + "name": "Nft", + "nameLocations": [ + "11847:3:40" ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - ], - "id": 28286, + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "11847:3:40" + }, + "referencedDeclaration": 32487, + "src": "11847:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33498, + "initialValue": { + "baseExpression": { + "id": 33495, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "11866:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33497, + "indexExpression": { + "id": 33496, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33399, + "src": "11874:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11866:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11847:30:40" + }, + { + "expression": { + "arguments": [ + { + "id": 33500, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33494, + "src": "11892:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33504, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2994:7:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "leftExpression": { + "id": 33502, + "name": "XP_SYNC_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32445, + "src": "11911:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 33503, + "name": "priceChangeAbs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33447, + "src": "11928:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "typeName": { - "id": 28285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2994:7:31", - "typeDescriptions": {} + "src": "11911:31:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 28288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2994:13:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "hexValue": "30", - "id": 28291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3019:1:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 28290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3011:7:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3011:7:31", - "typeDescriptions": {} - } - }, - "id": 28292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3011:10:31", - "tryCall": false, + "id": 33501, + "name": "_calcXpReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34304, + "src": "11897:13:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" } }, - "src": "2994:27:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "644e46543a20506f6f6c20697320616c726561647920736574", - "id": 28294, + "id": 33505, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "3022:27:31", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11897:46:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_60614a2e7acdd4902babc9023e43f1b5fc06a273316632ae6cfb26f4313fb6e6", - "typeString": "literal_string \"dNFT: Pool is already set\"" - }, - "value": "dNFT: Pool is already set" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" }, { - "typeIdentifier": "t_stringliteral_60614a2e7acdd4902babc9023e43f1b5fc06a273316632ae6cfb26f4313fb6e6", - "typeString": "literal_string \"dNFT: Pool is already set\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 28284, - "name": "require", + "id": 33499, + "name": "_addXp", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2986:7:31", + "overloadedDeclarations": [], + "referencedDeclaration": 34175, + "src": "11885:6:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" } }, - "id": 28295, + "id": 33506, "isConstant": false, "isLValue": false, "isPure": false, @@ -4528,508 +17591,710 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2986:64:31", + "src": "11885:59:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28296, + "id": 33507, "nodeType": "ExpressionStatement", - "src": "2986:64:31" + "src": "11885:59:40" }, { "expression": { - "id": 28301, + "id": 33512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 28297, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "3056:4:31", + "baseExpression": { + "id": 33508, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "11952:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33510, + "indexExpression": { + "id": 33509, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33399, + "src": "11960:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11952:11:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "arguments": [ - { - "id": 28299, - "name": "newPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28281, - "src": "3068:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28298, - "name": "Pool", + "id": 33511, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33494, + "src": "11971:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "src": "11952:22:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 33513, + "nodeType": "ExpressionStatement", + "src": "11952:22:40" + }, + { + "eventCall": { + "arguments": [ + { + "id": 33515, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32759, - "src": "3063:4:31", + "referencedDeclaration": 33399, + "src": "11994:2:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pool_$32759_$", - "typeString": "type(contract Pool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 28300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3063:13:31", - "tryCall": false, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33514, + "name": "Synced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32582, + "src": "11987:6:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "src": "3056:20:31", + "id": 33516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11987:10:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33517, + "nodeType": "EmitStatement", + "src": "11982:15:40" + }, + { + "expression": { + "id": 33518, + "name": "dyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32464, + "src": "12012:9:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28302, - "nodeType": "ExpressionStatement", - "src": "3056:20:31" + "functionReturnParameters": 33406, + "id": 33519, + "nodeType": "Return", + "src": "12005:16:40" + } + ] + }, + "functionSelector": "b1357bf9", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 33402, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33399, + "src": "10958:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33403, + "kind": "modifierInvocation", + "modifierName": { + "id": 33401, + "name": "isActive", + "nameLocations": [ + "10949:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "10949:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "10949:12:40" + } + ], + "name": "sync", + "nameLocation": "10926:4:40", + "parameters": { + "id": 33400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33399, + "mutability": "mutable", + "name": "id", + "nameLocation": "10936:2:40", + "nodeType": "VariableDeclaration", + "scope": 33521, + "src": "10931:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33398, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10931:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } - ] + ], + "src": "10930:9:40" }, - "functionSelector": "4437152a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setPool", - "nameLocation": "2920:7:31", - "parameters": { - "id": 28282, + "returnParameters": { + "id": 33406, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28281, + "id": 33405, "mutability": "mutable", - "name": "newPool", - "nameLocation": "2936:7:31", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 28304, - "src": "2928:15:31", + "scope": 33521, + "src": "10971:3:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { - "id": 28280, - "name": "address", + "id": 33404, + "name": "int", "nodeType": "ElementaryTypeName", - "src": "2928:7:31", - "stateMutability": "nonpayable", + "src": "10971:3:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "visibility": "internal" } ], - "src": "2927:17:31" - }, - "returnParameters": { - "id": 28283, - "nodeType": "ParameterList", - "parameters": [], - "src": "2952:0:31" + "src": "10970:5:40" }, - "scope": 28870, + "scope": 34366, "stateMutability": "nonpayable", "virtual": false, - "visibility": "public" + "visibility": "external" }, { - "id": 28328, + "id": 33628, "nodeType": "FunctionDefinition", - "src": "3150:301:31", + "src": "12075:656:40", "nodes": [], "body": { - "id": 28327, + "id": 33627, "nodeType": "Block", - "src": "3390:61:31", + "src": "12172:559:40", "nodes": [], "statements": [ { - "expression": { - "arguments": [ - { - "id": 28321, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28306, - "src": "3419:4:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 28322, - "name": "to", + "condition": { + "baseExpression": { + "baseExpression": { + "id": 33536, + "name": "idToClaimed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28308, - "src": "3425:2:31", + "referencedDeclaration": 32526, + "src": "12184:11:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" } }, - { - "id": 28323, - "name": "tokenId", + "id": 33538, + "indexExpression": { + "id": 33537, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28310, - "src": "3429:7:31", + "referencedDeclaration": 33523, + "src": "12196:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - { - "id": 28324, - "name": "batchSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28312, - "src": "3438:9:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12184:15:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + }, + "id": 33540, + "indexExpression": { + "id": 33539, + "name": "syncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32468, + "src": "12200:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12184:28:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33547, + "nodeType": "IfStatement", + "src": "12180:77:40", + "trueBody": { + "id": 33546, + "nodeType": "Block", + "src": "12214:43:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33542, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12238:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33543, + "name": "syncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32468, + "src": "12242:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33541, + "name": "AlreadyClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32692, + "src": "12223:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 33544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12223:31:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 33545, + "nodeType": "RevertStatement", + "src": "12216:38:40" + } + ] + } + }, + { + "expression": { + "id": 33554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 33548, + "name": "idToClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32526, + "src": "12264:11:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 33551, + "indexExpression": { + "id": 33549, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12276:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12264:15:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" } - ], - "expression": { - "id": 28318, - "name": "super", + }, + "id": 33552, + "indexExpression": { + "id": 33550, + "name": "syncedBlock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "3392:5:31", + "referencedDeclaration": 32468, + "src": "12280:11:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_dNFT_$28870_$", - "typeString": "type(contract super dNFT)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28320, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberLocation": "3398:20:31", - "memberName": "_beforeTokenTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 25261, - "src": "3392:26:31", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12264:28:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3392:56:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 28326, - "nodeType": "ExpressionStatement", - "src": "3392:56:31" - } - ] - }, - "baseFunctions": [ - 24891, - 25261 - ], - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_beforeTokenTransfer", - "nameLocation": "3159:20:31", - "overrides": { - "id": 28316, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 28314, - "name": "ERC721", - "nameLocations": [ - "3362:6:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24905, - "src": "3362:6:31" - }, - { - "id": 28315, - "name": "ERC721Enumerable", - "nameLocations": [ - "3370:16:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 25423, - "src": "3370:16:31" - } - ], - "src": "3353:34:31" - }, - "parameters": { - "id": 28313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28306, - "mutability": "mutable", - "name": "from", - "nameLocation": "3188:4:31", - "nodeType": "VariableDeclaration", - "scope": 28328, - "src": "3180:12:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3180:7:31", - "stateMutability": "nonpayable", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 33553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12295:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "12264:35:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" + "id": 33555, + "nodeType": "ExpressionStatement", + "src": "12264:35:40" }, { - "constant": false, - "id": 28308, - "mutability": "mutable", - "name": "to", - "nameLocation": "3234:2:31", - "nodeType": "VariableDeclaration", - "scope": 28328, - "src": "3226:10:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3226:7:31", - "stateMutability": "nonpayable", + "assignments": [ + 33558 + ], + "declarations": [ + { + "constant": false, + "id": 33558, + "mutability": "mutable", + "name": "nft", + "nameLocation": "12318:3:40", + "nodeType": "VariableDeclaration", + "scope": 33627, + "src": "12307:14:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33557, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33556, + "name": "Nft", + "nameLocations": [ + "12307:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "12307:3:40" + }, + "referencedDeclaration": 32487, + "src": "12307:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33562, + "initialValue": { + "baseExpression": { + "id": 33559, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "12324:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33561, + "indexExpression": { + "id": 33560, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12332:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12324:11:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "12307:28:40" }, { - "constant": false, - "id": 28310, - "mutability": "mutable", - "name": "tokenId", - "nameLocation": "3278:7:31", - "nodeType": "VariableDeclaration", - "scope": 28328, - "src": "3270:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3270:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 33564 + ], + "declarations": [ + { + "constant": false, + "id": 33564, + "mutability": "mutable", + "name": "share", + "nameLocation": "12348:5:40", + "nodeType": "VariableDeclaration", + "scope": 33627, + "src": "12343:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 33563, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "12343:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" } - }, - "visibility": "internal" + ], + "id": 33565, + "nodeType": "VariableDeclarationStatement", + "src": "12343:10:40" }, { - "constant": false, - "id": 28312, - "mutability": "mutable", - "name": "batchSize", - "nameLocation": "3327:9:31", - "nodeType": "VariableDeclaration", - "scope": 28328, - "src": "3319:17:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3319:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 33567 + ], + "declarations": [ + { + "constant": false, + "id": 33567, + "mutability": "mutable", + "name": "newXp", + "nameLocation": "12366:5:40", + "nodeType": "VariableDeclaration", + "scope": 33627, + "src": "12361:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33566, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12361:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } - }, - "visibility": "internal" - } - ], - "src": "3179:158:31" - }, - "returnParameters": { - "id": 28317, - "nodeType": "ParameterList", - "parameters": [], - "src": "3390:0:31" - }, - "scope": 28870, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 28344, - "nodeType": "FunctionDefinition", - "src": "3520:183:31", - "nodes": [], - "body": { - "id": 28343, - "nodeType": "Block", - "src": "3655:48:31", - "nodes": [], - "statements": [ - { - "expression": { + ], + "id": 33571, + "initialValue": { "arguments": [ { - "id": 28340, - "name": "interfaceId", + "id": 33569, + "name": "XP_CLAIM_REWARD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28330, - "src": "3688:11:31", + "referencedDeclaration": 32457, + "src": "12388:15:40", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "expression": { - "id": 28338, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "3664:5:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_dNFT_$28870_$", - "typeString": "type(contract super dNFT)" - } - }, - "id": 28339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3670:17:31", - "memberName": "supportsInterface", - "nodeType": "MemberAccess", - "referencedDeclaration": 25119, - "src": "3664:23:31", + "id": 33568, + "name": "_calcXpReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34304, + "src": "12374:13:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", - "typeString": "function (bytes4) view returns (bool)" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" } }, - "id": 28341, + "id": 33570, "isConstant": false, "isLValue": false, "isPure": false, @@ -5038,373 +18303,808 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3664:36:31", + "src": "12374:30:40", "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 28337, - "id": 28342, - "nodeType": "Return", - "src": "3657:43:31" - } - ] - }, - "baseFunctions": [ - 24054, - 25119 - ], - "functionSelector": "01ffc9a7", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "3529:17:31", - "overrides": { - "id": 28334, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 28332, - "name": "ERC721", - "nameLocations": [ - "3606:6:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24905, - "src": "3606:6:31" - }, - { - "id": 28333, - "name": "ERC721Enumerable", - "nameLocations": [ - "3614:16:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 25423, - "src": "3614:16:31" - } - ], - "src": "3597:34:31" - }, - "parameters": { - "id": 28331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28330, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "3554:11:31", - "nodeType": "VariableDeclaration", - "scope": 28344, - "src": "3547:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 28329, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3547:6:31", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "3546:20:31" - }, - "returnParameters": { - "id": 28337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28336, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 28344, - "src": "3647:4:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "typeName": { - "id": 28335, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3647:4:31", + "nodeType": "VariableDeclarationStatement", + "src": "12361:43:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33572, + "name": "dyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32464, + "src": "12416:9:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 33573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12428:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12416:13:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "visibility": "internal" - } - ], - "src": "3646:6:31" - }, - "scope": 28870, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 28372, - "nodeType": "FunctionDefinition", - "src": "3707:153:31", - "nodes": [], - "body": { - "id": 28371, - "nodeType": "Block", - "src": "3767:93:31", - "nodes": [], - "statements": [ + "falseBody": { + "id": 33601, + "nodeType": "Block", + "src": "12495:102:40", + "statements": [ + { + "assignments": [ + 33585 + ], + "declarations": [ + { + "constant": false, + "id": 33585, + "mutability": "mutable", + "name": "xp", + "nameLocation": "12510:2:40", + "nodeType": "VariableDeclaration", + "scope": 33601, + "src": "12505:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33584, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12505:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33586, + "nodeType": "VariableDeclarationStatement", + "src": "12505:7:40" + }, + { + "expression": { + "id": 33595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 33587, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33564, + "src": "12523:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 33588, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33585, + "src": "12530:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33589, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "12522:11:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$", + "typeString": "tuple(int256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33591, + "name": "dyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32464, + "src": "12549:9:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "expression": { + "id": 33592, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33558, + "src": "12560:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12564:2:40", + "memberName": "xp", + "nodeType": "MemberAccess", + "referencedDeclaration": 32478, + "src": "12560:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33590, + "name": "_calcNftBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34287, + "src": "12536:12:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_int256_$_t_uint256_$returns$_t_int256_$_t_uint256_$", + "typeString": "function (int256,uint256) view returns (int256,uint256)" + } + }, + "id": 33594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12536:31:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$", + "typeString": "tuple(int256,uint256)" + } + }, + "src": "12522:45:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33596, + "nodeType": "ExpressionStatement", + "src": "12522:45:40" + }, + { + "expression": { + "id": 33599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33597, + "name": "newXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33567, + "src": "12577:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 33598, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33585, + "src": "12586:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12577:11:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33600, + "nodeType": "ExpressionStatement", + "src": "12577:11:40" + } + ] + }, + "id": 33602, + "nodeType": "IfStatement", + "src": "12412:185:40", + "trueBody": { + "id": 33583, + "nodeType": "Block", + "src": "12431:58:40", + "statements": [ + { + "expression": { + "id": 33581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33575, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33564, + "src": "12441:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33577, + "name": "dyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32464, + "src": "12462:9:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "expression": { + "id": 33578, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33558, + "src": "12473:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12477:2:40", + "memberName": "xp", + "nodeType": "MemberAccess", + "referencedDeclaration": 32478, + "src": "12473:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33576, + "name": "_calcNftMint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34210, + "src": "12449:12:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_int256_$_t_uint256_$returns$_t_int256_$", + "typeString": "function (int256,uint256) view returns (int256)" + } + }, + "id": 33580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12449:31:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "12441:39:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33582, + "nodeType": "ExpressionStatement", + "src": "12441:39:40" + } + ] + } + }, { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28355, + "expression": { + "id": 33607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 28353, - "name": "minXP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28346, - "src": "3777:5:31", + "leftHandSide": { + "expression": { + "id": 33603, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33558, + "src": "12604:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33605, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "12608:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "12604:11:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 28354, - "name": "MIN_XP", + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 33606, + "name": "share", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28134, - "src": "3785:6:31", + "referencedDeclaration": 33564, + "src": "12619:5:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "3777:14:31", + "src": "12604:20:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28361, - "nodeType": "IfStatement", - "src": "3773:39:31", - "trueBody": { - "id": 28360, - "nodeType": "Block", - "src": "3793:19:31", - "statements": [ + "id": 33608, + "nodeType": "ExpressionStatement", + "src": "12604:20:40" + }, + { + "expression": { + "arguments": [ { - "expression": { - "id": 28358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28356, - "name": "MIN_XP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28134, - "src": "3795:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 28357, - "name": "minXP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28346, - "src": "3804:5:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3795:14:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 33610, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33558, + "src": "12639:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + { + "id": 33611, + "name": "newXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33567, + "src": "12644:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" }, - "id": 28359, - "nodeType": "ExpressionStatement", - "src": "3795:14:31" + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33609, + "name": "_addXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34175, + "src": "12632:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" } - ] - } + }, + "id": 33612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12632:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33613, + "nodeType": "ExpressionStatement", + "src": "12632:18:40" }, { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28364, + "expression": { + "id": 33618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 28362, - "name": "maxXP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28348, - "src": "3821:5:31", + "leftHandSide": { + "baseExpression": { + "id": 33614, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "12658:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33616, + "indexExpression": { + "id": 33615, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12666:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12658:11:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 28363, - "name": "MAX_XP", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33617, + "name": "nft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28139, - "src": "3829:6:31", + "referencedDeclaration": 33558, + "src": "12672:3:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "src": "3821:14:31", + "src": "12658:17:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "id": 28370, - "nodeType": "IfStatement", - "src": "3817:39:31", - "trueBody": { - "id": 28369, - "nodeType": "Block", - "src": "3837:19:31", - "statements": [ + "id": 33619, + "nodeType": "ExpressionStatement", + "src": "12658:17:40" + }, + { + "eventCall": { + "arguments": [ { - "expression": { - "id": 28367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28365, - "name": "MAX_XP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28139, - "src": "3839:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 28366, - "name": "maxXP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28348, - "src": "3848:5:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3839:14:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 33621, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12696:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33622, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33564, + "src": "12700:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 28368, - "nodeType": "ExpressionStatement", - "src": "3839:14:31" + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33620, + "name": "Claimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32588, + "src": "12688:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_int256_$returns$__$", + "typeString": "function (uint256,int256)" } - ] - } + }, + "id": 33623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12688:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33624, + "nodeType": "EmitStatement", + "src": "12683:23:40" + }, + { + "expression": { + "id": 33625, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33564, + "src": "12721:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 33535, + "id": 33626, + "nodeType": "Return", + "src": "12714:12:40" } ] }, - "functionSelector": "b0082cdf", + "functionSelector": "379607f5", "implemented": true, "kind": "function", "modifiers": [ { - "id": 28351, + "arguments": [ + { + "id": 33526, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12123:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 33527, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "12127:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12138:5:40", + "memberName": "CLAIM", + "nodeType": "MemberAccess", + "referencedDeclaration": 32495, + "src": "12127:16:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 33529, + "kind": "modifierInvocation", + "modifierName": { + "id": 33525, + "name": "withPermission", + "nameLocations": [ + "12108:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "12108:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "12108:36:40" + }, + { + "arguments": [ + { + "id": 33531, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33523, + "src": "12154:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33532, "kind": "modifierInvocation", "modifierName": { - "id": 28350, - "name": "onlyPool", + "id": 33530, + "name": "isActive", "nameLocations": [ - "3758:8:31" + "12145:8:40" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 28220, - "src": "3758:8:31" + "referencedDeclaration": 32780, + "src": "12145:8:40" }, "nodeType": "ModifierInvocation", - "src": "3758:8:31" + "src": "12145:12:40" } ], - "name": "updateXP", - "nameLocation": "3716:8:31", + "name": "claim", + "nameLocation": "12084:5:40", "parameters": { - "id": 28349, + "id": 33524, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28346, + "id": 33523, "mutability": "mutable", - "name": "minXP", - "nameLocation": "3730:5:31", + "name": "id", + "nameLocation": "12095:2:40", "nodeType": "VariableDeclaration", - "scope": 28372, - "src": "3725:10:31", + "scope": 33628, + "src": "12090:7:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5412,97 +19112,267 @@ "typeString": "uint256" }, "typeName": { - "id": 28345, + "id": 33522, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3725:4:31", + "src": "12090:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "12089:9:40" + }, + "returnParameters": { + "id": 33535, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 28348, + "id": 33534, "mutability": "mutable", - "name": "maxXP", - "nameLocation": "3742:5:31", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 28372, - "src": "3737:10:31", + "scope": 33628, + "src": "12167:3:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { - "id": 28347, - "name": "uint", + "id": 33533, + "name": "int", "nodeType": "ElementaryTypeName", - "src": "3737:4:31", + "src": "12167:3:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "visibility": "internal" } ], - "src": "3724:24:31" - }, - "returnParameters": { - "id": 28352, - "nodeType": "ParameterList", - "parameters": [], - "src": "3767:0:31" + "src": "12166:5:40" }, - "scope": 28870, + "scope": 34366, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 28389, + "id": 33773, "nodeType": "FunctionDefinition", - "src": "3864:96:31", + "src": "12793:1005:40", "nodes": [], "body": { - "id": 28388, + "id": 33772, "nodeType": "Block", - "src": "3932:28:31", + "src": "12899:899:40", "nodes": [], "statements": [ + { + "condition": { + "baseExpression": { + "baseExpression": { + "id": 33643, + "name": "idToClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32526, + "src": "12911:11:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 33645, + "indexExpression": { + "id": 33644, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33630, + "src": "12923:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12911:18:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 33647, + "indexExpression": { + "id": 33646, + "name": "prevSyncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32470, + "src": "12930:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12911:35:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33654, + "nodeType": "IfStatement", + "src": "12907:90:40", + "trueBody": { + "id": 33653, + "nodeType": "Block", + "src": "12948:49:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33649, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33630, + "src": "12971:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33650, + "name": "prevSyncedBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32470, + "src": "12978:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33648, + "name": "AlreadySniped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32698, + "src": "12957:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 33651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12957:37:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33652, + "nodeType": "RevertStatement", + "src": "12950:44:40" + } + ] + } + }, { "expression": { - "id": 28386, + "id": 33661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 28382, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "3938:7:31", + "baseExpression": { + "id": 33655, + "name": "idToClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32526, + "src": "13004:11:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 33658, + "indexExpression": { + "id": 33656, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33630, + "src": "13016:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13004:18:40", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" } }, - "id": 28384, + "id": 33659, "indexExpression": { - "id": 28383, - "name": "id", + "id": 33657, + "name": "prevSyncedBlock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28374, - "src": "3946:2:31", + "referencedDeclaration": 32470, + "src": "13023:15:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5513,480 +19383,953 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3938:11:31", + "src": "13004:35:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 33660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13042:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "13004:42:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33662, + "nodeType": "ExpressionStatement", + "src": "13004:42:40" + }, + { + "assignments": [ + 33665 + ], + "declarations": [ + { + "constant": false, + "id": 33665, + "mutability": "mutable", + "name": "from", + "nameLocation": "13065:4:40", + "nodeType": "VariableDeclaration", + "scope": 33772, + "src": "13054:15:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33664, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33663, + "name": "Nft", + "nameLocations": [ + "13054:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "13054:3:40" + }, + "referencedDeclaration": 32487, + "src": "13054:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33669, + "initialValue": { + "baseExpression": { + "id": 33666, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "13072:7:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 28385, - "name": "nft", + "id": 33668, + "indexExpression": { + "id": 33667, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28377, - "src": "3952:3:31", + "referencedDeclaration": 33630, + "src": "13080:5:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_memory_ptr", - "typeString": "struct IdNFT.Nft memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3938:17:31", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13072:14:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "id": 28387, - "nodeType": "ExpressionStatement", - "src": "3938:17:31" - } - ] - }, - "functionSelector": "46e85757", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 28380, - "kind": "modifierInvocation", - "modifierName": { - "id": 28379, - "name": "onlyPool", - "nameLocations": [ - "3923:8:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28220, - "src": "3923:8:31" + "nodeType": "VariableDeclarationStatement", + "src": "13054:32:40" }, - "nodeType": "ModifierInvocation", - "src": "3923:8:31" - } - ], - "name": "updateNft", - "nameLocation": "3873:9:31", - "parameters": { - "id": 28378, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 28374, - "mutability": "mutable", - "name": "id", - "nameLocation": "3888:2:31", - "nodeType": "VariableDeclaration", - "scope": 28389, - "src": "3883:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28373, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3883:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 33672 + ], + "declarations": [ + { + "constant": false, + "id": 33672, + "mutability": "mutable", + "name": "to", + "nameLocation": "13105:2:40", + "nodeType": "VariableDeclaration", + "scope": 33772, + "src": "13094:13:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33671, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33670, + "name": "Nft", + "nameLocations": [ + "13094:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "13094:3:40" + }, + "referencedDeclaration": 32487, + "src": "13094:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 28377, - "mutability": "mutable", - "name": "nft", - "nameLocation": "3909:3:31", - "nodeType": "VariableDeclaration", - "scope": 28389, - "src": "3892:20:31", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_memory_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 28376, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28375, - "name": "IdNFT.Nft", - "nameLocations": [ - "3892:5:31", - "3898:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "3892:9:31" + ], + "id": 33676, + "initialValue": { + "baseExpression": { + "id": 33673, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "13112:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } }, - "referencedDeclaration": 28988, - "src": "3892:9:31", + "id": 33675, + "indexExpression": { + "id": 33674, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33632, + "src": "13120:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13112:12:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "visibility": "internal" - } - ], - "src": "3882:31:31" - }, - "returnParameters": { - "id": 28381, - "nodeType": "ParameterList", - "parameters": [], - "src": "3932:0:31" - }, - "scope": 28870, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 28430, - "nodeType": "FunctionDefinition", - "src": "4092:403:31", - "nodes": [], - "body": { - "id": 28429, - "nodeType": "Block", - "src": "4261:234:31", - "nodes": [], - "statements": [ + "nodeType": "VariableDeclarationStatement", + "src": "13094:30:40" + }, { "assignments": [ - 28400 + 33678 ], "declarations": [ { "constant": false, - "id": 28400, + "id": 33678, "mutability": "mutable", - "name": "owner", - "nameLocation": "4275:5:31", + "name": "share", + "nameLocation": "13136:5:40", "nodeType": "VariableDeclaration", - "scope": 28429, - "src": "4267:13:31", + "scope": 33772, + "src": "13132:9:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { - "id": 28399, - "name": "address", + "id": 33677, + "name": "int", "nodeType": "ElementaryTypeName", - "src": "4267:7:31", - "stateMutability": "nonpayable", + "src": "13132:3:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "visibility": "internal" } ], - "id": 28405, - "initialValue": { - "arguments": [ - { - "id": 28403, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28393, - "src": "4298:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 33679, + "nodeType": "VariableDeclarationStatement", + "src": "13132:9:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33680, + "name": "prevDyadDelta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32466, + "src": "13153:13:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 28401, - "name": "ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24905, - "src": "4283:6:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721_$24905_$", - "typeString": "type(contract ERC721)" - } - }, - "id": 28402, + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 33681, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberLocation": "4290:7:31", - "memberName": "ownerOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 24106, - "src": "4283:14:31", + "nodeType": "Literal", + "src": "13169:1:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 28404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4283:23:31", - "tryCall": false, + "src": "13153:17:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4267:39:31" - }, - { - "expression": { - "components": [ + "falseBody": { + "id": 33750, + "nodeType": "Block", + "src": "13449:231:40", + "statements": [ { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 28426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 28420, + "assignments": [ + 33720 + ], + "declarations": [ + { + "constant": false, + "id": 33720, + "mutability": "mutable", + "name": "xp", + "nameLocation": "13488:2:40", + "nodeType": "VariableDeclaration", + "scope": 33750, + "src": "13483:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13483:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33721, + "nodeType": "VariableDeclarationStatement", + "src": "13483:7:40" + }, + { + "expression": { + "id": 33730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 28415, + "leftHandSide": { + "components": [ + { + "id": 33722, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33678, + "src": "13503:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 33723, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33720, + "src": "13510:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33724, "isConstant": false, - "isLValue": false, + "isInlineArray": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 28406, - "name": "spender", + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13502:11:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$", + "typeString": "tuple(int256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33726, + "name": "prevDyadDelta", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28391, - "src": "4320:7:31", + "referencedDeclaration": 32466, + "src": "13529:13:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "id": 28409, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "4339:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - } - ], + { "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - ], - "id": 28408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4331:7:31", + "id": 33727, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33665, + "src": "13544:4:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28407, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4331:7:31", - "typeDescriptions": {} + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "id": 28410, + "id": 33728, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4331:13:31", - "tryCall": false, + "memberLocation": "13549:2:40", + "memberName": "xp", + "nodeType": "MemberAccess", + "referencedDeclaration": 32478, + "src": "13544:7:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + ], + "id": 33725, + "name": "_calcNftBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34287, + "src": "13516:12:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_int256_$_t_uint256_$returns$_t_int256_$_t_uint256_$", + "typeString": "function (int256,uint256) view returns (int256,uint256)" + } + }, + "id": 33729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13516:36:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$", + "typeString": "tuple(int256,uint256)" + } + }, + "src": "13502:50:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33731, + "nodeType": "ExpressionStatement", + "src": "13502:50:40" + }, + { + "expression": { + "id": 33736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33732, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33665, + "src": "13562:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13567:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "13562:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 33735, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33678, + "src": "13578:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "13562:21:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33737, + "nodeType": "ExpressionStatement", + "src": "13562:21:40" + }, + { + "expression": { + "arguments": [ + { + "id": 33739, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33665, + "src": "13606:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + { + "id": 33740, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33720, + "src": "13612:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" }, - "src": "4320:24:31", + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33738, + "name": "_addXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34175, + "src": "13599:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" + } + }, + "id": 33741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13599:16:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33742, + "nodeType": "ExpressionStatement", + "src": "13599:16:40" + }, + { + "expression": { + "arguments": [ + { + "id": 33744, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33672, + "src": "13632:2:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + { + "arguments": [ + { + "id": 33746, + "name": "XP_DIBS_BURN_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32451, + "src": "13650:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33745, + "name": "_calcXpReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34304, + "src": "13636:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } }, - "id": 28414, + "id": 33747, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "id": 28412, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28391, - "src": "4378:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13636:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 28413, - "name": "owner", + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33743, + "name": "_addXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34175, + "src": "13625:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" + } + }, + "id": 33748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13625:46:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33749, + "nodeType": "ExpressionStatement", + "src": "13625:46:40" + } + ] + }, + "id": 33751, + "nodeType": "IfStatement", + "src": "13149:531:40", + "trueBody": { + "id": 33718, + "nodeType": "Block", + "src": "13172:271:40", + "statements": [ + { + "expression": { + "id": 33689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33683, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33678, + "src": "13191:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33685, + "name": "prevDyadDelta", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28400, - "src": "4389:5:31", + "referencedDeclaration": 32466, + "src": "13220:13:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "4378:16:31", + { + "expression": { + "id": 33686, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33665, + "src": "13235:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33687, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13240:2:40", + "memberName": "xp", + "nodeType": "MemberAccess", + "referencedDeclaration": 32478, + "src": "13235:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33684, + "name": "_calcNftMint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34210, + "src": "13207:12:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_int256_$_t_uint256_$returns$_t_int256_$", + "typeString": "function (int256,uint256) view returns (int256)" } }, - "src": "4320:74:31", + "id": 33688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13207:36:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { + "src": "13191:52:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 33690, + "nodeType": "ExpressionStatement", + "src": "13191:52:40" + }, + { + "expression": { + "id": 33700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 33691, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33665, + "src": "13253:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33693, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13258:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "13253:12:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { "arguments": [ { - "id": 28417, - "name": "owner", + "id": 33695, + "name": "share", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28400, - "src": "4427:5:31", + "referencedDeclaration": 33678, + "src": "13276:5:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, { - "id": 28418, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28391, - "src": "4434:7:31", + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31653138", + "id": 33696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13283:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 33697, + "name": "DIBS_MINT_SHARE_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32460, + "src": "13290:22:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "13283:29:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } ], - "id": 28416, - "name": "isApprovedForAll", + "id": 33694, + "name": "wadMul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 24270, - "src": "4410:16:31", + "referencedDeclaration": 31434, + "src": "13269:6:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" + "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (int256,int256) pure returns (int256)" } }, - "id": 28419, + "id": 33699, "isConstant": false, "isLValue": false, "isPure": false, @@ -5995,65 +20338,110 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4410:32:31", + "src": "13269:44:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "4320:122:31", + "src": "13253:60:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 28425, + "id": 33701, + "nodeType": "ExpressionStatement", + "src": "13253:60:40" + }, + { + "expression": { + "id": 33709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "expression": { + "id": 33702, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33672, + "src": "13324:2:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33704, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13327:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "13324:10:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { "arguments": [ { - "id": 28422, - "name": "tokenId", + "id": 33706, + "name": "share", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28393, - "src": "4470:7:31", + "referencedDeclaration": 33678, + "src": "13347:5:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 33707, + "name": "DIBS_MINT_SHARE_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32460, + "src": "13354:22:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" } ], - "id": 28421, - "name": "getApproved", + "id": 33705, + "name": "wadMul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 24235, - "src": "4458:11:31", + "referencedDeclaration": 31434, + "src": "13340:6:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" + "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (int256,int256) pure returns (int256)" } }, - "id": 28423, + "id": 33708, "isConstant": false, "isLValue": false, "isPure": false, @@ -6062,298 +20450,307 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4458:20:31", + "src": "13340:37:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 28424, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28391, - "src": "4482:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "4458:31:31", + "src": "13324:53:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "4320:169:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 28427, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4319:171:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 28398, - "id": 28428, - "nodeType": "Return", - "src": "4312:178:31" - } - ] - }, - "baseFunctions": [ - 24440 - ], - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nameLocation": "4101:18:31", - "overrides": { - "id": 28395, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4224:8:31" - }, - "parameters": { - "id": 28394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28391, - "mutability": "mutable", - "name": "spender", - "nameLocation": "4128:7:31", - "nodeType": "VariableDeclaration", - "scope": 28430, - "src": "4120:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4120:7:31", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" + "id": 33710, + "nodeType": "ExpressionStatement", + "src": "13324:53:40" + }, + { + "expression": { + "arguments": [ + { + "id": 33712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33672, + "src": "13395:2:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + { + "arguments": [ + { + "id": 33714, + "name": "XP_DIBS_MINT_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32454, + "src": "13413:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33713, + "name": "_calcXpReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34304, + "src": "13399:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 33715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13399:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33711, + "name": "_addXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34175, + "src": "13388:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" + } + }, + "id": 33716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13388:46:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33717, + "nodeType": "ExpressionStatement", + "src": "13388:46:40" + } + ] + } }, { - "constant": false, - "id": 28393, - "mutability": "mutable", - "name": "tokenId", - "nameLocation": "4175:7:31", - "nodeType": "VariableDeclaration", - "scope": 28430, - "src": "4167:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28392, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4167:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4119:64:31" - }, - "returnParameters": { - "id": 28398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28397, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 28430, - "src": "4255:4:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 28396, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4255:4:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4254:6:31" - }, - "scope": 28870, - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "id": 28451, - "nodeType": "FunctionDefinition", - "src": "4597:157:31", - "nodes": [], - "body": { - "id": 28450, - "nodeType": "Block", - "src": "4664:90:31", - "nodes": [], - "statements": [ - { - "assignments": [ - 28438 - ], - "declarations": [ - { - "constant": false, - "id": 28438, - "mutability": "mutable", - "name": "id", - "nameLocation": "4675:2:31", - "nodeType": "VariableDeclaration", - "scope": 28450, - "src": "4670:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28437, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4670:4:31", + "expression": { + "id": 33756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33752, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "13687:7:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" } }, - "visibility": "internal" - } - ], - "id": 28442, - "initialValue": { - "arguments": [ - { - "id": 28440, - "name": "receiver", + "id": 33754, + "indexExpression": { + "id": 33753, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28432, - "src": "4689:8:31", + "referencedDeclaration": 33630, + "src": "13695:5:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13687:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 28439, - "name": "_mintNft", + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33755, + "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "4680:8:31", + "referencedDeclaration": 33665, + "src": "13704:4:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "id": 28441, + "src": "13687:21:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 33757, + "nodeType": "ExpressionStatement", + "src": "13687:21:40" + }, + { + "expression": { + "id": 33762, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4680:18:31", - "tryCall": false, + "leftHandSide": { + "baseExpression": { + "id": 33758, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "13716:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33760, + "indexExpression": { + "id": 33759, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33632, + "src": "13724:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13716:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33761, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33672, + "src": "13733:2:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "src": "13716:19:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4670:28:31" + "id": 33763, + "nodeType": "ExpressionStatement", + "src": "13716:19:40" }, { - "expression": { + "eventCall": { "arguments": [ { - "id": 28444, - "name": "id", + "id": 33765, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28438, - "src": "4714:2:31", + "referencedDeclaration": 33630, + "src": "13755:5:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 28445, - "name": "DEPOSIT_MINIMUM", + "id": 33766, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28131, - "src": "4718:15:31", + "referencedDeclaration": 33632, + "src": "13762:3:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "id": 33767, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33678, + "src": "13767:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } } ], "expression": { @@ -6365,20 +20762,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" } ], - "id": 28443, - "name": "_mintDyad", + "id": 33764, + "name": "Sniped", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28642, - "src": "4704:9:31", + "referencedDeclaration": 32596, + "src": "13748:6:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_int256_$returns$__$", + "typeString": "function (uint256,uint256,int256)" } }, - "id": 28446, + "id": 33768, "isConstant": false, "isLValue": false, "isPure": false, @@ -6387,196 +20788,559 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4704:30:31", + "src": "13748:25:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28447, - "nodeType": "ExpressionStatement", - "src": "4704:30:31" + "id": 33769, + "nodeType": "EmitStatement", + "src": "13743:30:40" + }, + { + "expression": { + "id": 33770, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33678, + "src": "13788:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 33642, + "id": 33771, + "nodeType": "Return", + "src": "13781:12:40" + } + ] + }, + "functionSelector": "de1eecb3", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 33635, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33630, + "src": "12864:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33636, + "kind": "modifierInvocation", + "modifierName": { + "id": 33634, + "name": "isActive", + "nameLocations": [ + "12855:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "12855:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "12855:15:40" + }, + { + "arguments": [ + { + "id": 33638, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33632, + "src": "12880:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33639, + "kind": "modifierInvocation", + "modifierName": { + "id": 33637, + "name": "isActive", + "nameLocations": [ + "12871:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32780, + "src": "12871:8:40" }, + "nodeType": "ModifierInvocation", + "src": "12871:13:40" + } + ], + "name": "snipe", + "nameLocation": "12802:5:40", + "parameters": { + "id": 33633, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "id": 28448, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28438, - "src": "4747:2:31", + "constant": false, + "id": 33630, + "mutability": "mutable", + "name": "_from", + "nameLocation": "12820:5:40", + "nodeType": "VariableDeclaration", + "scope": 33773, + "src": "12815:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12815:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 28436, - "id": 28449, - "nodeType": "Return", - "src": "4740:9:31" - } - ] - }, - "functionSelector": "e9c2e14b", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mintNft", - "nameLocation": "4606:7:31", - "parameters": { - "id": 28433, - "nodeType": "ParameterList", - "parameters": [ + "visibility": "internal" + }, { "constant": false, - "id": 28432, + "id": 33632, "mutability": "mutable", - "name": "receiver", - "nameLocation": "4622:8:31", + "name": "_to", + "nameLocation": "12838:3:40", "nodeType": "VariableDeclaration", - "scope": 28451, - "src": "4614:16:31", + "scope": 33773, + "src": "12833:8:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 28431, - "name": "address", + "id": 33631, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4614:7:31", - "stateMutability": "nonpayable", + "src": "12833:4:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "src": "4613:18:31" + "src": "12807:38:40" }, "returnParameters": { - "id": 28436, + "id": 33642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28435, + "id": 33641, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 28451, - "src": "4658:4:31", + "scope": 33773, + "src": "12894:3:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { - "id": 28434, - "name": "uint", + "id": 33640, + "name": "int", "nodeType": "ElementaryTypeName", - "src": "4658:4:31", + "src": "12894:3:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "visibility": "internal" } ], - "src": "4657:6:31" + "src": "12893:5:40" }, - "scope": 28870, - "stateMutability": "payable", + "scope": 34366, + "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 28502, + "id": 33853, "nodeType": "FunctionDefinition", - "src": "4901:548:31", + "src": "13846:539:40", "nodes": [], "body": { - "id": 28501, + "id": 33852, "nodeType": "Block", - "src": "5070:379:31", + "src": "13921:464:40", "nodes": [], "statements": [ { "assignments": [ - 28466 + 33782 ], "declarations": [ { "constant": false, - "id": 28466, + "id": 33782, "mutability": "mutable", - "name": "id", - "nameLocation": "5081:2:31", + "name": "nft", + "nameLocation": "13940:3:40", "nodeType": "VariableDeclaration", - "scope": 28501, - "src": "5076:7:31", + "scope": 33852, + "src": "13929:14:40", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 33781, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33780, + "name": "Nft", + "nameLocations": [ + "13929:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "13929:3:40" + }, + "referencedDeclaration": 32487, + "src": "13929:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + } + ], + "id": 33786, + "initialValue": { + "baseExpression": { + "id": 33783, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "13946:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33785, + "indexExpression": { + "id": 33784, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33775, + "src": "13954:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13946:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13929:28:40" + }, + { + "assignments": [ + 33788 + ], + "declarations": [ + { + "constant": false, + "id": 33788, + "mutability": "mutable", + "name": "_deposit", + "nameLocation": "13969:8:40", + "nodeType": "VariableDeclaration", + "scope": 33852, + "src": "13965:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { - "id": 28465, - "name": "uint", + "id": 33787, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "13965:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 33791, + "initialValue": { + "expression": { + "id": 33789, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33782, + "src": "13982:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 33790, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13986:7:40", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 32480, + "src": "13982:11:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13965:28:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33792, + "name": "_deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33788, + "src": "14017:8:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 33793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14029:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14017:13:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33800, + "nodeType": "IfStatement", + "src": "14013:50:40", + "trueBody": { + "id": 33799, + "nodeType": "Block", + "src": "14032:31:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33796, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33775, + "src": "14057:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33795, + "name": "NotLiquidatable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32636, + "src": "14041:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 33797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14041:19:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33798, + "nodeType": "RevertStatement", + "src": "14034:26:40" + } + ] + } + }, + { + "assignments": [ + 33802 + ], + "declarations": [ + { + "constant": false, + "id": 33802, + "mutability": "mutable", + "name": "newDyad", + "nameLocation": "14074:7:40", + "nodeType": "VariableDeclaration", + "scope": 33852, + "src": "14070:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 33801, + "name": "int", "nodeType": "ElementaryTypeName", - "src": "5076:4:31", + "src": "14070:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 33807, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 33804, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14094:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 33805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14098:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "14094:9:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "id": 28470, - "initialValue": { - "arguments": [ - { - "id": 28468, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28453, - "src": "5095:8:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 28467, - "name": "_mintNft", + "id": 33803, + "name": "_eth2dyad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28569, - "src": "5086:8:31", + "referencedDeclaration": 34322, + "src": "14084:9:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_int256_$", + "typeString": "function (uint256) view returns (int256)" } }, - "id": 28469, + "id": 33806, "isConstant": false, "isLValue": false, "isPure": false, @@ -6585,273 +21349,478 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5086:18:31", + "src": "14084:20:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5076:28:31" + "src": "14070:34:40" }, { - "assignments": [ - 28475 - ], - "declarations": [ - { - "constant": false, - "id": 28475, - "mutability": "mutable", - "name": "newNft", - "nameLocation": "5128:6:31", - "nodeType": "VariableDeclaration", - "scope": 28501, - "src": "5110:24:31", - "stateVariable": false, - "storageLocation": "storage", + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33808, + "name": "newDyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33802, + "src": "14116:7:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" }, - "typeName": { - "id": 28474, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28473, - "name": "IdNFT.Nft", - "nameLocations": [ - "5110:5:31", - "5116:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "5110:9:31" + "id": 33812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33809, + "name": "_deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33788, + "src": "14126:8:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 33811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "14135:2:40", + "subExpression": { + "hexValue": "31", + "id": 33810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14136:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "referencedDeclaration": 28988, - "src": "5110:9:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" } }, - "visibility": "internal" - } - ], - "id": 28479, - "initialValue": { - "baseExpression": { - "id": 28476, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "5137:7:31", + "src": "14126:11:40", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28478, - "indexExpression": { - "id": 28477, - "name": "id", + "src": "14116:21:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33819, + "nodeType": "IfStatement", + "src": "14112:79:40", + "trueBody": { + "id": 33818, + "nodeType": "Block", + "src": "14139:52:40", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 33815, + "name": "newDyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33802, + "src": "14180:7:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 33814, + "name": "NotEnoughToCoverNegativeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32668, + "src": "14148:31:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$__$", + "typeString": "function (int256) pure" + } + }, + "id": 33816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14148:40:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33817, + "nodeType": "RevertStatement", + "src": "14141:47:40" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 33821, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33782, + "src": "14205:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + { + "arguments": [ + { + "id": 33823, + "name": "XP_LIQUIDATION_REWARD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32448, + "src": "14224:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33822, + "name": "_calcXpReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34304, + "src": "14210:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 33824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14210:36:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33820, + "name": "_addXp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28466, - "src": "5145:2:31", + "referencedDeclaration": 34175, + "src": "14198:6:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Nft_$32487_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct DNft.Nft memory,uint256)" } }, + "id": 33825, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5137:11:31", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14198:49:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5110:38:31" + "id": 33826, + "nodeType": "ExpressionStatement", + "src": "14198:49:40" }, { "expression": { - "id": 28485, + "id": 33831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 28480, - "name": "newNft", + "id": 33827, + "name": "nft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28475, - "src": "5228:6:31", + "referencedDeclaration": 33782, + "src": "14255:3:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "id": 28482, + "id": 33829, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "5235:2:31", - "memberName": "xp", + "memberLocation": "14259:7:40", + "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 28987, - "src": "5228:9:31", + "referencedDeclaration": 32480, + "src": "14255:11:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "nodeType": "Assignment", - "operator": "=", + "operator": "+=", "rightHandSide": { - "expression": { - "id": 28483, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28456, - "src": "5247:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 28484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5251:2:31", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28987, - "src": "5247:6:31", + "id": 33830, + "name": "newDyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33802, + "src": "14270:7:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "5228:25:31", + "src": "14255:22:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28486, + "id": 33832, "nodeType": "ExpressionStatement", - "src": "5228:25:31" + "src": "14255:22:40" }, { "expression": { - "id": 28492, + "id": 33837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "expression": { - "id": 28487, - "name": "newNft", + "baseExpression": { + "id": 33833, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "14286:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33835, + "indexExpression": { + "id": 33834, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28475, - "src": "5259:6:31", + "referencedDeclaration": 33775, + "src": "14294:2:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28489, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "5266:9:31", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "5259:16:31", + "nodeType": "IndexAccess", + "src": "14286:11:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "expression": { - "id": 28490, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28456, - "src": "5278:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_memory_ptr", - "typeString": "struct IdNFT.Nft memory" - } - }, - "id": 28491, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5282:9:31", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "5278:13:31", + "id": 33836, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33782, + "src": "14301:3:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "src": "5259:32:31", + "src": "14286:18:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "id": 28493, + "id": 33838, "nodeType": "ExpressionStatement", - "src": "5259:32:31" + "src": "14286:18:40" }, { "expression": { "arguments": [ { - "id": 28495, - "name": "id", + "arguments": [ + { + "id": 33841, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33775, + "src": "14335:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33840, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23871, + "src": "14327:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 33842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14327:11:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33843, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28466, - "src": "5409:2:31", + "referencedDeclaration": 33777, + "src": "14340:2:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, { - "id": 28496, - "name": "depositMinimum", + "id": 33844, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28458, - "src": "5413:14:31", + "referencedDeclaration": 33775, + "src": "14344:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6861,26 +21830,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 28494, - "name": "_mintDyad", + "id": 33839, + "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28642, - "src": "5399:9:31", + "referencedDeclaration": 24478, + "src": "14317:9:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 28497, + "id": 33845, "isConstant": false, "isLValue": false, "isPure": false, @@ -6889,139 +21862,108 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5399:29:31", + "src": "14317:30:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28498, + "id": 33846, "nodeType": "ExpressionStatement", - "src": "5399:29:31" + "src": "14317:30:40" }, { - "expression": { - "id": 28499, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28466, - "src": "5442:2:31", + "eventCall": { + "arguments": [ + { + "id": 33848, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33777, + "src": "14371:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 33849, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33775, + "src": "14376:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33847, + "name": "Liquidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32610, + "src": "14360:10:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 33850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14360:19:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 28464, - "id": 28500, - "nodeType": "Return", - "src": "5435:9:31" + "id": 33851, + "nodeType": "EmitStatement", + "src": "14355:24:40" } ] }, - "functionSelector": "3924bc9a", + "functionSelector": "5fae8b3d", "implemented": true, "kind": "function", - "modifiers": [ - { - "id": 28461, - "kind": "modifierInvocation", - "modifierName": { - "id": 28460, - "name": "onlyPool", - "nameLocations": [ - "5046:8:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28220, - "src": "5046:8:31" - }, - "nodeType": "ModifierInvocation", - "src": "5046:8:31" - } - ], - "name": "mintNftCopy", - "nameLocation": "4910:11:31", + "modifiers": [], + "name": "liquidate", + "nameLocation": "13855:9:40", "parameters": { - "id": 28459, + "id": 33778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28453, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "4930:8:31", - "nodeType": "VariableDeclaration", - "scope": 28502, - "src": "4922:16:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28452, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4922:7:31", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 28456, - "mutability": "mutable", - "name": "nft", - "nameLocation": "4980:3:31", - "nodeType": "VariableDeclaration", - "scope": 28502, - "src": "4963:20:31", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_memory_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 28455, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28454, - "name": "IdNFT.Nft", - "nameLocations": [ - "4963:5:31", - "4969:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "4963:9:31" - }, - "referencedDeclaration": 28988, - "src": "4963:9:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 28458, + "id": 33775, "mutability": "mutable", - "name": "depositMinimum", - "nameLocation": "5013:14:31", + "name": "id", + "nameLocation": "13877:2:40", "nodeType": "VariableDeclaration", - "scope": 28502, - "src": "5008:19:31", + "scope": 33853, + "src": "13872:7:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7029,261 +21971,168 @@ "typeString": "uint256" }, "typeName": { - "id": 28457, + "id": 33774, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5008:4:31", + "src": "13872:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - } - ], - "src": "4921:107:31" - }, - "returnParameters": { - "id": 28464, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 28463, + "id": 33777, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "to", + "nameLocation": "13896:2:40", "nodeType": "VariableDeclaration", - "scope": 28502, - "src": "5064:4:31", + "scope": 33853, + "src": "13888:10:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 28462, - "name": "uint", + "id": 33776, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "5064:4:31", + "src": "13888:7:40", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "5063:6:31" + "src": "13864:39:40" + }, + "returnParameters": { + "id": 33779, + "nodeType": "ParameterList", + "parameters": [], + "src": "13921:0:40" }, - "scope": 28870, + "scope": 34366, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 28569, - "nodeType": "FunctionDefinition", - "src": "5669:859:31", - "nodes": [], - "body": { - "id": 28568, - "nodeType": "Block", - "src": "5731:797:31", - "nodes": [], - "statements": [ - { - "expression": { - "id": 28511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28509, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28507, - "src": "5915:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 28510, - "name": "numberOfMints", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28129, - "src": "5920:13:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5915:18:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28512, - "nodeType": "ExpressionStatement", - "src": "5915:18:31" - }, + "id": 33878, + "nodeType": "FunctionDefinition", + "src": "14417:153:40", + "nodes": [], + "body": { + "id": 33877, + "nodeType": "Block", + "src": "14508:62:40", + "nodes": [], + "statements": [ { "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 28514, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25158, - "src": "5947:11:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 28515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5947:13:31", - "tryCall": false, + "id": 33871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 33866, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "14514:7:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 28516, - "name": "MAX_SUPPLY", + "id": 33868, + "indexExpression": { + "id": 33867, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28124, - "src": "5963:10:31", + "referencedDeclaration": 33855, + "src": "14522:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5947:26:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4d617820737570706c792072656163686564", - "id": 28518, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "5975:20:31", + "nodeType": "IndexAccess", + "src": "14514:11:40", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf40cb9708e1320ee04bc59cb2f8b4ce47ba0c93638609957810c412abce51a7", - "typeString": "literal_string \"Max supply reached\"" - }, - "value": "Max supply reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf40cb9708e1320ee04bc59cb2f8b4ce47ba0c93638609957810c412abce51a7", - "typeString": "literal_string \"Max supply reached\"" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } - ], - "id": 28513, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5939:7:31", + }, + "id": 33869, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "14526:8:40", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 32486, + "src": "14514:20:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5939:57:31", - "tryCall": false, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 33870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14537:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14514:27:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28520, + "id": 33872, "nodeType": "ExpressionStatement", - "src": "5939:57:31" + "src": "14514:27:40" }, { - "expression": { + "eventCall": { "arguments": [ { - "id": 28522, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28504, - "src": "6008:8:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 28523, + "id": 33874, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28507, - "src": "6018:2:31", + "referencedDeclaration": 33855, + "src": "14562:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7292,27 +22141,23 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 28521, - "name": "_mint", + "id": 33873, + "name": "Activated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 24561, - "src": "6002:5:31", + "referencedDeclaration": 32600, + "src": "14552:9:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 28524, + "id": 33875, "isConstant": false, "isLValue": false, "isPure": false, @@ -7321,642 +22166,564 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6002:19:31", + "src": "14552:13:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28525, - "nodeType": "ExpressionStatement", - "src": "6002:19:31" + "id": 33876, + "nodeType": "EmitStatement", + "src": "14547:18:40" + } + ] + }, + "functionSelector": "b260c42a", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 33858, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33855, + "src": "14468:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 33859, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "14472:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14483:8:40", + "memberName": "ACTIVATE", + "nodeType": "MemberAccess", + "referencedDeclaration": 32488, + "src": "14472:19:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 33861, + "kind": "modifierInvocation", + "modifierName": { + "id": 33857, + "name": "withPermission", + "nameLocations": [ + "14453:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "14453:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "14453:39:40" + }, + { + "arguments": [ + { + "id": 33863, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33855, + "src": "14504:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33864, + "kind": "modifierInvocation", + "modifierName": { + "id": 33862, + "name": "isInactive", + "nameLocations": [ + "14493:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32797, + "src": "14493:10:40" }, + "nodeType": "ModifierInvocation", + "src": "14493:14:40" + } + ], + "name": "activate", + "nameLocation": "14426:8:40", + "parameters": { + "id": 33856, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "id": 28528, + "constant": false, + "id": 33855, + "mutability": "mutable", + "name": "id", + "nameLocation": "14440:2:40", + "nodeType": "VariableDeclaration", + "scope": 33878, + "src": "14435:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33854, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14435:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14434:9:40" + }, + "returnParameters": { + "id": 33865, + "nodeType": "ParameterList", + "parameters": [], + "src": "14508:0:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 33925, + "nodeType": "FunctionDefinition", + "src": "14602:293:40", + "nodes": [], + "body": { + "id": 33924, + "nodeType": "Block", + "src": "14695:200:40", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 28526, - "name": "numberOfMints", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28129, - "src": "6028:13:31", + "leftExpression": { + "expression": { + "baseExpression": { + "id": 33891, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "14705:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33893, + "indexExpression": { + "id": 33892, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14713:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14705:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 33894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14717:10:40", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 32482, + "src": "14705:22:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 28527, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 33895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6045:1:31", + "src": "14731:1:40", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "value": "1" + "value": "0" }, - "src": "6028:18:31", + "src": "14705:27:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28529, - "nodeType": "ExpressionStatement", - "src": "6028:18:31" - }, - { - "assignments": [ - 28534 - ], - "declarations": [ - { - "constant": false, - "id": 28534, - "mutability": "mutable", - "name": "nft", - "nameLocation": "6071:3:31", - "nodeType": "VariableDeclaration", - "scope": 28568, - "src": "6053:21:31", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 28533, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28532, - "name": "IdNFT.Nft", - "nameLocations": [ - "6053:5:31", - "6059:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "6053:9:31" - }, - "referencedDeclaration": 28988, - "src": "6053:9:31", + "id": 33901, + "nodeType": "IfStatement", + "src": "14701:62:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 33898, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14760:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33897, + "name": "WithdrawalsNotZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32640, + "src": "14741:18:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" } }, - "visibility": "internal" - } - ], - "id": 28538, - "initialValue": { - "baseExpression": { - "id": 28535, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "6077:7:31", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" - } - }, - "id": 28537, - "indexExpression": { - "id": 28536, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28507, - "src": "6085:2:31", + "id": 33899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14741:22:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6077:11:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6053:35:31" + "id": 33900, + "nodeType": "RevertStatement", + "src": "14734:29:40" + } }, { - "expression": { - "id": 28550, + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 33907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "expression": { - "id": 28539, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28534, - "src": "6337:3:31", + "baseExpression": { + "id": 33902, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "14773:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33904, + "indexExpression": { + "id": 33903, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14781:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14773:11:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "id": 28541, + "id": 33905, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "memberLocation": "6341:2:31", - "memberName": "xp", + "lValueRequested": false, + "memberLocation": "14785:7:40", + "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 28987, - "src": "6337:6:31", + "referencedDeclaration": 32480, + "src": "14773:19:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28549, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 33906, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 28542, - "name": "MIN_XP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28134, - "src": "6346:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 28543, - "name": "MAX_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28124, - "src": "6355:10:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6346:19:31", + "nodeType": "Literal", + "src": "14799:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14773:27:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33912, + "nodeType": "IfStatement", + "src": "14769:61:40", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 33909, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14827:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 28545, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25158, - "src": "6366:11:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 28546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6366:13:31", - "tryCall": false, - "typeDescriptions": { + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "6346:33:31", + ], + "id": 33908, + "name": "DepositIsNegative", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32644, + "src": "14809:17:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" } }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 28548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6380:1:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6346:35:31", + "id": 33910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14809:21:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "6337:44:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28551, - "nodeType": "ExpressionStatement", - "src": "6337:44:31" + "id": 33911, + "nodeType": "RevertStatement", + "src": "14802:28:40" + } }, { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28555, + "expression": { + "id": 33918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "expression": { - "id": 28552, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28534, - "src": "6453:3:31", + "baseExpression": { + "id": 33913, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "14836:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 33915, + "indexExpression": { + "id": 33914, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14844:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14836:11:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - "id": 28553, + "id": 33916, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberLocation": "6457:2:31", - "memberName": "xp", + "lValueRequested": true, + "memberLocation": "14848:8:40", + "memberName": "isActive", "nodeType": "MemberAccess", - "referencedDeclaration": 28987, - "src": "6453:6:31", + "referencedDeclaration": 32486, + "src": "14836:20:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 28554, - "name": "MIN_XP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28134, - "src": "6462:6:31", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 33917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14859:5:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" }, - "src": "6453:15:31", + "src": "14836:28:40", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 28562, - "nodeType": "IfStatement", - "src": "6449:41:31", - "trueBody": { - "id": 28561, - "nodeType": "Block", - "src": "6470:20:31", - "statements": [ - { - "expression": { - "id": 28559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 28556, - "name": "MIN_XP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28134, - "src": "6472:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 28557, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28534, - "src": "6481:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" - } - }, - "id": 28558, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6485:2:31", - "memberName": "xp", - "nodeType": "MemberAccess", - "referencedDeclaration": 28987, - "src": "6481:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6472:15:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28560, - "nodeType": "ExpressionStatement", - "src": "6472:15:31" - } - ] - } + "id": 33919, + "nodeType": "ExpressionStatement", + "src": "14836:28:40" }, { "eventCall": { "arguments": [ - { - "id": 28564, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28504, - "src": "6510:8:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 28565, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28507, - "src": "6520:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 28563, - "name": "NftMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28156, - "src": "6500:9:31", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 28566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6500:23:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 28567, - "nodeType": "EmitStatement", - "src": "6495:28:31" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mintNft", - "nameLocation": "5678:8:31", - "parameters": { - "id": 28505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28504, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "5695:8:31", - "nodeType": "VariableDeclaration", - "scope": 28569, - "src": "5687:16:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5687:7:31", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5686:18:31" - }, - "returnParameters": { - "id": 28508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28507, - "mutability": "mutable", - "name": "id", - "nameLocation": "5727:2:31", - "nodeType": "VariableDeclaration", - "scope": 28569, - "src": "5722:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28506, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5722:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5721:9:31" - }, - "scope": 28870, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "id": 28583, - "nodeType": "FunctionDefinition", - "src": "6578:86:31", - "nodes": [], - "body": { - "id": 28582, - "nodeType": "Block", - "src": "6637:27:31", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 28578, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28571, - "src": "6653:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 28579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6657:1:31", + { + "id": 33921, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14887:2:40", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { @@ -7964,24 +22731,20 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" } ], - "id": 28577, - "name": "_mintDyad", + "id": 33920, + "name": "Deactivated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28642, - "src": "6643:9:31", + "referencedDeclaration": 32604, + "src": "14875:11:40", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 28580, + "id": 33922, "isConstant": false, "isLValue": false, "isPure": false, @@ -7990,69 +22753,127 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6643:16:31", + "src": "14875:15:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28581, - "nodeType": "ExpressionStatement", - "src": "6643:16:31" + "id": 33923, + "nodeType": "EmitStatement", + "src": "14870:20:40" } ] }, - "functionSelector": "fb9103cc", + "functionSelector": "916b9bef", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 28574, + "id": 33883, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33880, + "src": "14655:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 33884, + "name": "Permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32496, + "src": "14659:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Permission_$32496_$", + "typeString": "type(enum DNft.Permission)" + } + }, + "id": 33885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14670:10:40", + "memberName": "DEACTIVATE", + "nodeType": "MemberAccess", + "referencedDeclaration": 32489, + "src": "14659:21:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "id": 33886, + "kind": "modifierInvocation", + "modifierName": { + "id": 33882, + "name": "withPermission", + "nameLocations": [ + "14640:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32763, + "src": "14640:14:40" + }, + "nodeType": "ModifierInvocation", + "src": "14640:41:40" + }, + { + "arguments": [ + { + "id": 33888, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28571, - "src": "6633:2:31", + "referencedDeclaration": 33880, + "src": "14691:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 28575, + "id": 33889, "kind": "modifierInvocation", "modifierName": { - "id": 28573, - "name": "onlyNFTOwner", + "id": 33887, + "name": "isActive", "nameLocations": [ - "6620:12:31" + "14682:8:40" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 28205, - "src": "6620:12:31" + "referencedDeclaration": 32780, + "src": "14682:8:40" }, "nodeType": "ModifierInvocation", - "src": "6620:16:31" + "src": "14682:12:40" } ], - "name": "mintDyad", - "nameLocation": "6587:8:31", + "name": "deactivate", + "nameLocation": "14611:10:40", "parameters": { - "id": 28572, + "id": 33881, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28571, + "id": 33880, "mutability": "mutable", "name": "id", - "nameLocation": "6601:2:31", + "nameLocation": "14627:2:40", "nodeType": "VariableDeclaration", - "scope": 28583, - "src": "6596:7:31", + "scope": 33925, + "src": "14622:7:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8060,10 +22881,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28570, + "id": 33879, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6596:4:31", + "src": "14622:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8072,376 +22893,88 @@ "visibility": "internal" } ], - "src": "6595:9:31" + "src": "14621:9:40" }, "returnParameters": { - "id": 28576, + "id": 33890, "nodeType": "ParameterList", "parameters": [], - "src": "6637:0:31" + "src": "14695:0:40" }, - "scope": 28870, - "stateMutability": "payable", + "scope": 34366, + "stateMutability": "nonpayable", "virtual": false, - "visibility": "public" + "visibility": "external" }, { - "id": 28642, + "id": 34003, "nodeType": "FunctionDefinition", - "src": "6668:341:31", + "src": "14933:708:40", "nodes": [], "body": { - "id": 28641, + "id": 34002, "nodeType": "Block", - "src": "6720:289:31", + "src": "15043:598:40", "nodes": [], "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 28591, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6734:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6738:5:31", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "6734:9:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 28593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6746:1:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6734:13:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "596f75206e65656420746f2073656e6420736f6d652045544820746f206d696e742064796164", - "id": 28595, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6749:40:31", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c41c938bdc4b5f80ddb75c161b80473f198a575a1e91b421eb55cf74101da9a3", - "typeString": "literal_string \"You need to send some ETH to mint dyad\"" - }, - "value": "You need to send some ETH to mint dyad" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c41c938bdc4b5f80ddb75c161b80473f198a575a1e91b421eb55cf74101da9a3", - "typeString": "literal_string \"You need to send some ETH to mint dyad\"" - } - ], - "id": 28590, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6726:7:31", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 28596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6726:64:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 28597, - "nodeType": "ExpressionStatement", - "src": "6726:64:31" - }, { "assignments": [ - 28599 + 33938 ], "declarations": [ { "constant": false, - "id": 28599, - "mutability": "mutable", - "name": "amount", - "nameLocation": "6801:6:31", - "nodeType": "VariableDeclaration", - "scope": 28641, - "src": "6796:11:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28598, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6796:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 28607, - "initialValue": { - "arguments": [ - { - "id": 28605, - "name": "minAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28587, - "src": "6842:9:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 28600, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "6810:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - }, - "id": 28601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6815:8:31", - "memberName": "mintDyad", - "nodeType": "MemberAccess", - "referencedDeclaration": 32623, - "src": "6810:13:31", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) payable external returns (uint256)" - } - }, - "id": 28604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "expression": { - "id": 28602, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6831:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6835:5:31", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "6831:9:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "6810:31:31", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_uint256_$returns$_t_uint256_$value", - "typeString": "function (uint256) payable external returns (uint256)" - } - }, - "id": 28606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6810:42:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 33938, + "mutability": "mutable", + "name": "_blockNumber", + "nameLocation": "15059:12:40", + "nodeType": "VariableDeclaration", + "scope": 34002, + "src": "15051:20:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + }, + "typeName": { + "id": 33937, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "15051:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "visibility": "internal" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6796:56:31" - }, - { - "expression": { + ], + "id": 33944, + "initialValue": { "arguments": [ { - "arguments": [ - { - "id": 28613, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "6879:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - ], - "id": 28612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6871:7:31", + "id": 33941, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "15082:5:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28611, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6871:7:31", - "typeDescriptions": {} + "typeIdentifier": "t_magic_block", + "typeString": "block" } }, - "id": 28614, + "id": 33942, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6871:13:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 28615, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28599, - "src": "6886:6:31", + "memberLocation": "15088:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "15082:12:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8450,343 +22983,758 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "expression": { - "id": 28608, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "6858:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" - } - }, - "id": 28610, + "id": 33940, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberLocation": "6863:7:31", - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 23393, - "src": "6858:12:31", + "nodeType": "ElementaryTypeNameExpression", + "src": "15074:7:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 33939, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "15074:7:40", + "typeDescriptions": {} } }, - "id": 28616, + "id": 33943, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6858:35:31", + "src": "15074:21:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint248", + "typeString": "uint248" } }, - "id": 28617, - "nodeType": "ExpressionStatement", - "src": "6858:35:31" + "nodeType": "VariableDeclarationStatement", + "src": "15051:44:40" }, { - "expression": { - "arguments": [ + "body": { + "id": 33995, + "nodeType": "Block", + "src": "15153:441:40", + "statements": [ { - "id": 28621, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28599, - "src": "6912:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 33955 + ], + "declarations": [ + { + "constant": false, + "id": 33955, + "mutability": "mutable", + "name": "_permissionSet", + "nameLocation": "15184:14:40", + "nodeType": "VariableDeclaration", + "scope": 33995, + "src": "15163:35:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_memory_ptr", + "typeString": "struct DNft.PermissionSet" + }, + "typeName": { + "id": 33954, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33953, + "name": "PermissionSet", + "nameLocations": [ + "15163:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32503, + "src": "15163:13:40" + }, + "referencedDeclaration": 32503, + "src": "15163:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_storage_ptr", + "typeString": "struct DNft.PermissionSet" + } + }, + "visibility": "internal" + } + ], + "id": 33959, + "initialValue": { + "baseExpression": { + "id": 33956, + "name": "_permissionSets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33931, + "src": "15201:15:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct DNft.PermissionSet calldata[] calldata" + } + }, + "id": 33958, + "indexExpression": { + "id": 33957, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33946, + "src": "15217:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15201:18:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_calldata_ptr", + "typeString": "struct DNft.PermissionSet calldata" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15163:56:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 33960, + "name": "_permissionSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33955, + "src": "15233:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_memory_ptr", + "typeString": "struct DNft.PermissionSet memory" + } + }, + "id": 33961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15248:11:40", + "memberName": "permissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 32502, + "src": "15233:26:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_memory_ptr", + "typeString": "enum DNft.Permission[] memory" + } + }, + "id": 33962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15260:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15233:33:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15270:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15233:38:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 33989, + "nodeType": "Block", + "src": "15356:203:40", + "statements": [ + { + "expression": { + "id": 33987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 33974, + "name": "idToNftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32520, + "src": "15368:17:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DNft.NftPermission storage ref))" + } + }, + "id": 33978, + "indexExpression": { + "id": 33975, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33927, + "src": "15386:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15368:22:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$", + "typeString": "mapping(address => struct DNft.NftPermission storage ref)" + } + }, + "id": 33979, + "indexExpression": { + "expression": { + "id": 33976, + "name": "_permissionSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33955, + "src": "15391:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_memory_ptr", + "typeString": "struct DNft.PermissionSet memory" + } + }, + "id": 33977, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15406:8:40", + "memberName": "operator", + "nodeType": "MemberAccess", + "referencedDeclaration": 32498, + "src": "15391:23:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15368:47:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_storage", + "typeString": "struct DNft.NftPermission storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 33981, + "name": "_permissionSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33955, + "src": "15459:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_memory_ptr", + "typeString": "struct DNft.PermissionSet memory" + } + }, + "id": 33982, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15474:11:40", + "memberName": "permissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 32502, + "src": "15459:26:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_memory_ptr", + "typeString": "enum DNft.Permission[] memory" + } + }, + "id": 33983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15486:8:40", + "memberName": "_toUInt8", + "nodeType": "MemberAccess", + "referencedDeclaration": 34897, + "src": "15459:35:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_enum$_Permission_$32496_$dyn_memory_ptr_$returns$_t_uint8_$bound_to$_t_array$_t_enum$_Permission_$32496_$dyn_memory_ptr_$", + "typeString": "function (enum DNft.Permission[] memory) pure returns (uint8)" + } + }, + "id": 33984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15459:37:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 33985, + "name": "_blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33938, + "src": "15523:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + ], + "id": 33980, + "name": "NftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32508, + "src": "15418:13:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_NftPermission_$32508_storage_ptr_$", + "typeString": "type(struct DNft.NftPermission storage pointer)" + } + }, + "id": 33986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "15446:11:40", + "15510:11:40" + ], + "names": [ + "permissions", + "lastUpdated" + ], + "nodeType": "FunctionCall", + "src": "15418:130:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission memory" + } + }, + "src": "15368:180:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_storage", + "typeString": "struct DNft.NftPermission storage ref" + } + }, + "id": 33988, + "nodeType": "ExpressionStatement", + "src": "15368:180:40" + } + ] + }, + "id": 33990, + "nodeType": "IfStatement", + "src": "15229:330:40", + "trueBody": { + "id": 33973, + "nodeType": "Block", + "src": "15273:77:40", + "statements": [ + { + "expression": { + "id": 33971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "15285:54:40", + "subExpression": { + "baseExpression": { + "baseExpression": { + "id": 33965, + "name": "idToNftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32520, + "src": "15292:17:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DNft.NftPermission storage ref))" + } + }, + "id": 33967, + "indexExpression": { + "id": 33966, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33927, + "src": "15310:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15292:22:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$", + "typeString": "mapping(address => struct DNft.NftPermission storage ref)" + } + }, + "id": 33970, + "indexExpression": { + "expression": { + "id": 33968, + "name": "_permissionSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33955, + "src": "15315:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_memory_ptr", + "typeString": "struct DNft.PermissionSet memory" + } + }, + "id": 33969, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15330:8:40", + "memberName": "operator", + "nodeType": "MemberAccess", + "referencedDeclaration": 32498, + "src": "15315:23:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15292:47:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_storage", + "typeString": "struct DNft.NftPermission storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33972, + "nodeType": "ExpressionStatement", + "src": "15285:54:40" + } + ] } + }, + { + "id": 33994, + "nodeType": "UncheckedBlock", + "src": "15568:18:40", + "statements": [ + { + "expression": { + "id": 33992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15580:3:40", + "subExpression": { + "id": 33991, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33946, + "src": "15580:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33993, + "nodeType": "ExpressionStatement", + "src": "15580:3:40" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33949, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33946, + "src": "15123:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { "expression": { - "id": 28618, - "name": "pool", + "id": 33950, + "name": "_permissionSets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "6899:4:31", + "referencedDeclaration": 33931, + "src": "15127:15:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct DNft.PermissionSet calldata[] calldata" } }, - "id": 28620, + "id": 33951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6904:7:31", - "memberName": "deposit", + "memberLocation": "15143:6:40", + "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 32643, - "src": "6899:12:31", + "src": "15127:22:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6899:20:31", - "tryCall": false, + "src": "15123:26:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28623, - "nodeType": "ExpressionStatement", - "src": "6899:20:31" - }, - { - "expression": { - "id": 28632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 28624, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "6925:7:31", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" - } + "id": 33996, + "initializationExpression": { + "assignments": [ + 33946 + ], + "declarations": [ + { + "constant": false, + "id": 33946, + "mutability": "mutable", + "name": "i", + "nameLocation": "15116:1:40", + "nodeType": "VariableDeclaration", + "scope": 33996, + "src": "15108:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 28626, - "indexExpression": { - "id": 28625, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28585, - "src": "6933:2:31", + "typeName": { + "id": 33945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15108:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6925:11:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" - } - }, - "id": 28627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6937:7:31", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28985, - "src": "6925:19:31", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" + "visibility": "internal" } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "id": 28630, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28599, - "src": "6952:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 28629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6948:3:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 28628, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "6948:3:31", - "typeDescriptions": {} - } - }, - "id": 28631, + ], + "id": 33948, + "initialValue": { + "hexValue": "30", + "id": 33947, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, + "kind": "number", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6948:11:31", - "tryCall": false, + "nodeType": "Literal", + "src": "15120:1:40", "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "6925:34:31", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } + "nodeType": "VariableDeclarationStatement", + "src": "15108:13:40" }, - "id": 28633, - "nodeType": "ExpressionStatement", - "src": "6925:34:31" + "nodeType": "ForStatement", + "src": "15103:491:40" }, { "eventCall": { "arguments": [ { - "expression": { - "id": 28635, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6981:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6985:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "6981:10:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 28637, - "name": "id", + "id": 33998, + "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28585, - "src": "6993:2:31", + "referencedDeclaration": 33927, + "src": "15615:3:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 28638, - "name": "amount", + "id": 33999, + "name": "_permissionSets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28599, - "src": "6997:6:31", + "referencedDeclaration": 33931, + "src": "15620:15:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct DNft.PermissionSet calldata[] calldata" } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct DNft.PermissionSet calldata[] calldata" } ], - "id": 28634, - "name": "DyadMinted", + "id": 33997, + "name": "Modified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28164, - "src": "6970:10:31", + "referencedDeclaration": 32618, + "src": "15606:8:40", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_array$_t_struct$_PermissionSet_$32503_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,struct DNft.PermissionSet memory[] memory)" } }, - "id": 28639, + "id": 34000, "isConstant": false, "isLValue": false, "isPure": false, @@ -8795,37 +23743,69 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6970:34:31", + "src": "15606:30:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28640, + "id": 34001, "nodeType": "EmitStatement", - "src": "6965:39:31" + "src": "15601:35:40" } ] }, + "functionSelector": "95952619", "implemented": true, "kind": "function", - "modifiers": [], - "name": "_mintDyad", - "nameLocation": "6677:9:31", + "modifiers": [ + { + "arguments": [ + { + "id": 33934, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33927, + "src": "15038:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33935, + "kind": "modifierInvocation", + "modifierName": { + "id": 33933, + "name": "onlyOwner", + "nameLocations": [ + "15028:9:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32741, + "src": "15028:9:40" + }, + "nodeType": "ModifierInvocation", + "src": "15028:14:40" + } + ], + "name": "grant", + "nameLocation": "14942:5:40", "parameters": { - "id": 28588, + "id": 33932, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28585, + "id": 33927, "mutability": "mutable", - "name": "id", - "nameLocation": "6692:2:31", + "name": "_id", + "nameLocation": "14963:3:40", "nodeType": "VariableDeclaration", - "scope": 28642, - "src": "6687:7:31", + "scope": 34003, + "src": "14955:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8833,10 +23813,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28584, - "name": "uint", + "id": 33926, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6687:4:31", + "src": "14955:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8846,891 +23826,2038 @@ }, { "constant": false, - "id": 28587, + "id": 33931, "mutability": "mutable", - "name": "minAmount", - "nameLocation": "6701:9:31", + "name": "_permissionSets", + "nameLocation": "14999:15:40", "nodeType": "VariableDeclaration", - "scope": 28642, - "src": "6696:14:31", + "scope": 34003, + "src": "14974:40:40", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct DNft.PermissionSet[]" }, "typeName": { - "id": 28586, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6696:4:31", + "baseType": { + "id": 33929, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 33928, + "name": "PermissionSet", + "nameLocations": [ + "14974:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32503, + "src": "14974:13:40" + }, + "referencedDeclaration": 32503, + "src": "14974:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PermissionSet_$32503_storage_ptr", + "typeString": "struct DNft.PermissionSet" + } + }, + "id": 33930, + "nodeType": "ArrayTypeName", + "src": "14974:15:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_PermissionSet_$32503_storage_$dyn_storage_ptr", + "typeString": "struct DNft.PermissionSet[]" } }, "visibility": "internal" } ], - "src": "6686:25:31" + "src": "14947:71:40" }, "returnParameters": { - "id": 28589, + "id": 33936, "nodeType": "ParameterList", "parameters": [], - "src": "6720:0:31" + "src": "15043:0:40" }, - "scope": 28870, + "scope": 34366, "stateMutability": "nonpayable", "virtual": false, - "visibility": "private" + "visibility": "external" }, { - "id": 28733, + "id": 34048, "nodeType": "FunctionDefinition", - "src": "7060:546:31", + "src": "15645:539:40", "nodes": [], "body": { - "id": 28732, + "id": 34047, "nodeType": "Block", - "src": "7126:480:31", + "src": "15770:414:40", "nodes": [], "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 34016, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34005, + "src": "15790:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 34015, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23871, + "src": "15782:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 34017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15782:11:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 34018, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34007, + "src": "15797:8:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15782:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34023, + "nodeType": "IfStatement", + "src": "15778:45:40", + "trueBody": { + "id": 34022, + "nodeType": "Block", + "src": "15807:16:40", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 34020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15816:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 34014, + "id": 34021, + "nodeType": "Return", + "src": "15809:11:40" + } + ] + } + }, { "assignments": [ - 28653 + 34026 ], "declarations": [ { "constant": false, - "id": 28653, + "id": 34026, "mutability": "mutable", - "name": "poolDyadBalance", - "nameLocation": "7137:15:31", + "name": "_nftPermission", + "nameLocation": "15851:14:40", "nodeType": "VariableDeclaration", - "scope": 28732, - "src": "7132:20:31", + "scope": 34047, + "src": "15830:35:40", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission" }, "typeName": { - "id": 28652, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7132:4:31", + "id": 34025, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34024, + "name": "NftPermission", + "nameLocations": [ + "15830:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32508, + "src": "15830:13:40" + }, + "referencedDeclaration": 32508, + "src": "15830:13:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_NftPermission_$32508_storage_ptr", + "typeString": "struct DNft.NftPermission" } }, "visibility": "internal" } ], - "id": 28661, + "id": 34032, "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 28658, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "7178:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - ], - "id": 28657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7170:7:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7170:7:31", - "typeDescriptions": {} - } - }, - "id": 28659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7170:13:31", - "tryCall": false, + "baseExpression": { + "baseExpression": { + "id": 34027, + "name": "idToNftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32520, + "src": "15868:17:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DNft.NftPermission storage ref))" } - ], - "expression": { - "id": 28654, - "name": "dyad", + }, + "id": 34029, + "indexExpression": { + "id": 34028, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "7155:4:31", + "referencedDeclaration": 34005, + "src": "15886:2:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28655, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7160:9:31", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 23325, - "src": "7155:14:31", + "nodeType": "IndexAccess", + "src": "15868:21:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$", + "typeString": "mapping(address => struct DNft.NftPermission storage ref)" + } + }, + "id": 34031, + "indexExpression": { + "id": 34030, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34007, + "src": "15890:8:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 28660, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7155:29:31", - "tryCall": false, + "nodeType": "IndexAccess", + "src": "15868:31:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_NftPermission_$32508_storage", + "typeString": "struct DNft.NftPermission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "7132:52:31" + "src": "15830:69:40" }, { - "assignments": [ - 28663 - ], - "declarations": [ - { - "constant": false, - "id": 28663, - "mutability": "mutable", - "name": "cr", - "nameLocation": "7195:2:31", - "nodeType": "VariableDeclaration", - "scope": 28732, - "src": "7190:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28662, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7190:4:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 28674, - "initialValue": { + "expression": { "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 28673, + "id": 34045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "id": 34036, + "name": "permission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34010, + "src": "15956:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + ], + "expression": { + "expression": { + "id": 34033, + "name": "_nftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34026, + "src": "15914:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission memory" + } + }, + "id": 34034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15929:11:40", + "memberName": "permissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 32505, + "src": "15914:26:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 34035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15941:14:40", + "memberName": "_hasPermission", + "nodeType": "MemberAccess", + "referencedDeclaration": 34927, + "src": "15914:41:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_enum$_Permission_$32496_$returns$_t_bool_$bound_to$_t_uint8_$", + "typeString": "function (uint8,enum DNft.Permission) pure returns (bool)" + } }, - "id": 28671, + "id": 34037, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 28664, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "7201:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" - } - }, - "id": 28665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7206:11:31", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 23311, - "src": "7201:16:31", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 28666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7201:18:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 28667, - "name": "poolDyadBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28653, - "src": "7222:15:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7201:36:31", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15914:53:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 34038, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "16119:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 34040, + "indexExpression": { + "id": 34039, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34005, + "src": "16127:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16119:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } - ], - "id": 28669, + }, + "id": 34041, "isConstant": false, - "isInlineArray": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7200:38:31", + "memberLocation": "16131:19:40", + "memberName": "lastOwnershipChange", + "nodeType": "MemberAccess", + "referencedDeclaration": 32484, + "src": "16119:31:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "<", "rightExpression": { - "hexValue": "3130303030", - "id": 28670, + "expression": { + "id": 34042, + "name": "_nftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34026, + "src": "16153:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission memory" + } + }, + "id": 34043, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "7241:5:31", + "memberLocation": "16168:11:40", + "memberName": "lastUpdated", + "nodeType": "MemberAccess", + "referencedDeclaration": 32507, + "src": "16153:26:40", "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } }, - "src": "7200:46:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 28672, - "name": "poolDyadBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28653, - "src": "7249:15:31", + "src": "16119:60:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "7200:64:31", + "src": "15914:265:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 34014, + "id": 34046, + "nodeType": "Return", + "src": "15907:272:40" + } + ] + }, + "functionSelector": "823abfd9", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasPermission", + "nameLocation": "15654:13:40", + "parameters": { + "id": 34011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34005, + "mutability": "mutable", + "name": "id", + "nameLocation": "15683:2:40", + "nodeType": "VariableDeclaration", + "scope": 34048, + "src": "15675:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15675:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7190:74:31" + "visibility": "internal" + }, + { + "constant": false, + "id": 34007, + "mutability": "mutable", + "name": "operator", + "nameLocation": "15701:8:40", + "nodeType": "VariableDeclaration", + "scope": 34048, + "src": "15693:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15693:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" }, + { + "constant": false, + "id": 34010, + "mutability": "mutable", + "name": "permission", + "nameLocation": "15728:10:40", + "nodeType": "VariableDeclaration", + "scope": 34048, + "src": "15717:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + }, + "typeName": { + "id": 34009, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34008, + "name": "Permission", + "nameLocations": [ + "15717:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32496, + "src": "15717:10:40" + }, + "referencedDeclaration": 32496, + "src": "15717:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + }, + "visibility": "internal" + } + ], + "src": "15667:75:40" + }, + "returnParameters": { + "id": 34014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34013, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34048, + "src": "15764:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 34012, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15764:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15763:6:40" + }, + "scope": 34366, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 34145, + "nodeType": "FunctionDefinition", + "src": "16188:876:40", + "nodes": [], + "body": { + "id": 34144, + "nodeType": "Block", + "src": "16353:711:40", + "nodes": [], + "statements": [ { "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28678, + "id": 34069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 34062, + "name": "_hasPermissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34060, + "src": "16361:15:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 34066, + "name": "permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34056, + "src": "16390:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_calldata_ptr", + "typeString": "enum DNft.Permission[] calldata" + } + }, + "id": 34067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16402:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "16390:18:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 34065, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "leftExpression": { - "id": 28676, - "name": "cr", + "nodeType": "NewExpression", + "src": "16379:10:40", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" + }, + "typeName": { + "baseType": { + "id": 34063, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16383:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34064, + "nodeType": "ArrayTypeName", + "src": "16383:6:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + } + }, + "id": 34068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16379:30:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "src": "16361:48:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 34070, + "nodeType": "ExpressionStatement", + "src": "16361:48:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 34072, + "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28663, - "src": "7278:2:31", + "referencedDeclaration": 34050, + "src": "16429:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 28677, - "name": "MAX_COLLATERATION_RATIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28127, - "src": "7283:23:31", - "typeDescriptions": { + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "7278:28:31", + ], + "id": 34071, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23871, + "src": "16421:7:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" } }, - { - "hexValue": "4352206973206f7665722031353025", - "id": 28679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7308:17:31", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_69a8895e72283815a369313c0b8b26d68708e315e6ec12f028625d55802277a3", - "typeString": "literal_string \"CR is over 150%\"" - }, - "value": "CR is over 150%" + "id": 34073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16421:11:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_69a8895e72283815a369313c0b8b26d68708e315e6ec12f028625d55802277a3", - "typeString": "literal_string \"CR is over 150%\"" - } - ], - "id": 28675, - "name": "require", + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 34074, + "name": "operator", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7270:7:31", + "overloadedDeclarations": [], + "referencedDeclaration": 34052, + "src": "16436:8:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 28680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7270:56:31", - "tryCall": false, + "src": "16421:23:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28681, - "nodeType": "ExpressionStatement", - "src": "7270:56:31" - }, - { - "assignments": [ - 28686 - ], - "declarations": [ - { - "constant": false, - "id": 28686, - "mutability": "mutable", - "name": "nft", - "nameLocation": "7352:3:31", - "nodeType": "VariableDeclaration", - "scope": 28732, - "src": "7334:21:31", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "falseBody": { + "id": 34142, + "nodeType": "Block", + "src": "16617:443:40", + "statements": [ + { + "assignments": [ + 34098 + ], + "declarations": [ + { + "constant": false, + "id": 34098, + "mutability": "mutable", + "name": "_nftPermission", + "nameLocation": "16712:14:40", + "nodeType": "VariableDeclaration", + "scope": 34142, + "src": "16691:35:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission" + }, + "typeName": { + "id": 34097, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34096, + "name": "NftPermission", + "nameLocations": [ + "16691:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32508, + "src": "16691:13:40" + }, + "referencedDeclaration": 32508, + "src": "16691:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_storage_ptr", + "typeString": "struct DNft.NftPermission" + } + }, + "visibility": "internal" + } + ], + "id": 34104, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 34099, + "name": "idToNftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32520, + "src": "16729:17:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DNft.NftPermission storage ref))" + } + }, + "id": 34101, + "indexExpression": { + "id": 34100, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34050, + "src": "16747:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16729:21:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_NftPermission_$32508_storage_$", + "typeString": "mapping(address => struct DNft.NftPermission storage ref)" + } + }, + "id": 34103, + "indexExpression": { + "id": 34102, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34052, + "src": "16751:8:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16729:31:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_storage", + "typeString": "struct DNft.NftPermission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16691:69:40" }, - "typeName": { - "id": 28685, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28684, - "name": "IdNFT.Nft", - "nameLocations": [ - "7334:5:31", - "7340:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "7334:9:31" + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 34105, + "name": "idToNft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32513, + "src": "16774:7:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 34107, + "indexExpression": { + "id": 34106, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34050, + "src": "16782:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16774:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" + } + }, + "id": 34108, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16786:19:40", + "memberName": "lastOwnershipChange", + "nodeType": "MemberAccess", + "referencedDeclaration": 32484, + "src": "16774:31:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 34109, + "name": "_nftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34098, + "src": "16808:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission memory" + } + }, + "id": 34110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16823:11:40", + "memberName": "lastUpdated", + "nodeType": "MemberAccess", + "referencedDeclaration": 32507, + "src": "16808:26:40", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "src": "16774:60:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "referencedDeclaration": 28988, - "src": "7334:9:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "id": 34141, + "nodeType": "IfStatement", + "src": "16770:282:40", + "trueBody": { + "id": 34140, + "nodeType": "Block", + "src": "16836:216:40", + "statements": [ + { + "body": { + "id": 34138, + "nodeType": "Block", + "src": "16897:145:40", + "statements": [ + { + "condition": { + "arguments": [ + { + "baseExpression": { + "id": 34126, + "name": "permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34056, + "src": "16957:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_calldata_ptr", + "typeString": "enum DNft.Permission[] calldata" + } + }, + "id": 34128, + "indexExpression": { + "id": 34127, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34113, + "src": "16969:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16957:14:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" + } + ], + "expression": { + "expression": { + "id": 34123, + "name": "_nftPermission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34098, + "src": "16915:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_NftPermission_$32508_memory_ptr", + "typeString": "struct DNft.NftPermission memory" + } + }, + "id": 34124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16930:11:40", + "memberName": "permissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 32505, + "src": "16915:26:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 34125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16942:14:40", + "memberName": "_hasPermission", + "nodeType": "MemberAccess", + "referencedDeclaration": 34927, + "src": "16915:41:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_enum$_Permission_$32496_$returns$_t_bool_$bound_to$_t_uint8_$", + "typeString": "function (uint8,enum DNft.Permission) pure returns (bool)" + } + }, + "id": 34129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16915:57:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34137, + "nodeType": "IfStatement", + "src": "16911:119:40", + "trueBody": { + "id": 34136, + "nodeType": "Block", + "src": "16974:56:40", + "statements": [ + { + "expression": { + "id": 34134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 34130, + "name": "_hasPermissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34060, + "src": "16990:15:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 34132, + "indexExpression": { + "id": 34131, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34113, + "src": "17006:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16990:18:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 34133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17011:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "16990:25:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34135, + "nodeType": "ExpressionStatement", + "src": "16990:25:40" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34116, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34113, + "src": "16868:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 34117, + "name": "permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34056, + "src": "16872:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_calldata_ptr", + "typeString": "enum DNft.Permission[] calldata" + } + }, + "id": 34118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16884:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "16872:18:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16868:22:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34139, + "initializationExpression": { + "assignments": [ + 34113 + ], + "declarations": [ + { + "constant": false, + "id": 34113, + "mutability": "mutable", + "name": "i", + "nameLocation": "16861:1:40", + "nodeType": "VariableDeclaration", + "scope": 34139, + "src": "16853:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16853:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 34115, + "initialValue": { + "hexValue": "30", + "id": 34114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16865:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "16853:13:40" + }, + "loopExpression": { + "expression": { + "id": 34121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16892:3:40", + "subExpression": { + "id": 34120, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34113, + "src": "16892:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34122, + "nodeType": "ExpressionStatement", + "src": "16892:3:40" + }, + "nodeType": "ForStatement", + "src": "16848:194:40" + } + ] } - }, - "visibility": "internal" - } - ], - "id": 28690, - "initialValue": { - "baseExpression": { - "id": 28687, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "7358:7:31", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" - } - }, - "id": 28689, - "indexExpression": { - "id": 28688, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28644, - "src": "7366:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7358:11:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" - } + ] }, - "nodeType": "VariableDeclarationStatement", - "src": "7334:35:31" - }, - { - "expression": { - "arguments": [ + "id": 34143, + "nodeType": "IfStatement", + "src": "16417:643:40", + "trueBody": { + "id": 34095, + "nodeType": "Block", + "src": "16446:165:40", + "statements": [ { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 28698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ + "body": { + "id": 34093, + "nodeType": "Block", + "src": "16555:48:40", + "statements": [ { - "id": 28694, - "name": "amount", + "expression": { + "id": 34091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 34087, + "name": "_hasPermissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34060, + "src": "16567:15:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 34089, + "indexExpression": { + "id": 34088, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34077, + "src": "16583:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16567:18:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 34090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16588:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "16567:25:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34092, + "nodeType": "ExpressionStatement", + "src": "16567:25:40" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34080, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34077, + "src": "16526:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 34081, + "name": "permissions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28646, - "src": "7387:6:31", + "referencedDeclaration": 34056, + "src": "16530:11:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_calldata_ptr", + "typeString": "enum DNft.Permission[] calldata" } + }, + "id": 34082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16542:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "16530:18:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + }, + "src": "16526:22:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34094, + "initializationExpression": { + "assignments": [ + 34077 ], - "expression": { - "argumentTypes": [ - { + "declarations": [ + { + "constant": false, + "id": 34077, + "mutability": "mutable", + "name": "i", + "nameLocation": "16519:1:40", + "nodeType": "VariableDeclaration", + "scope": 34094, + "src": "16511:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "id": 28693, + }, + "typeName": { + "id": 34076, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16511:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 34079, + "initialValue": { + "hexValue": "30", + "id": 34078, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7383:3:31", + "nodeType": "Literal", + "src": "16523:1:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": { - "id": 28692, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "7383:3:31", - "typeDescriptions": {} - } + "value": "0" }, - "id": 28695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7383:11:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } + "nodeType": "VariableDeclarationStatement", + "src": "16511:13:40" }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + "loopExpression": { "expression": { - "id": 28696, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28686, - "src": "7398:3:31", + "id": 34085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16550:3:40", + "subExpression": { + "id": 34084, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34077, + "src": "16550:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28697, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7402:7:31", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28985, - "src": "7398:11:31", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "7383:26:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "644e46543a20576974686472617720616d6f756e742065786365656473206465706f736974", - "id": 28699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7411:39:31", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_91aaa23648d1b8ce333e57864c3ed44b10ac1c51e34272c6cf7dbc288a885099", - "typeString": "literal_string \"dNFT: Withdraw amount exceeds deposit\"" + "id": 34086, + "nodeType": "ExpressionStatement", + "src": "16550:3:40" }, - "value": "dNFT: Withdraw amount exceeds deposit" + "nodeType": "ForStatement", + "src": "16506:97:40" + } + ] + } + } + ] + }, + "functionSelector": "551e123b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasPermissions", + "nameLocation": "16197:14:40", + "parameters": { + "id": 34057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34050, + "mutability": "mutable", + "name": "id", + "nameLocation": "16227:2:40", + "nodeType": "VariableDeclaration", + "scope": 34145, + "src": "16219:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16219:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34052, + "mutability": "mutable", + "name": "operator", + "nameLocation": "16245:8:40", + "nodeType": "VariableDeclaration", + "scope": 34145, + "src": "16237:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16237:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34056, + "mutability": "mutable", + "name": "permissions", + "nameLocation": "16283:11:40", + "nodeType": "VariableDeclaration", + "scope": 34145, + "src": "16261:33:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_calldata_ptr", + "typeString": "enum DNft.Permission[]" + }, + "typeName": { + "baseType": { + "id": 34054, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34053, + "name": "Permission", + "nameLocations": [ + "16261:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32496, + "src": "16261:10:40" + }, + "referencedDeclaration": 32496, + "src": "16261:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Permission_$32496", + "typeString": "enum DNft.Permission" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_91aaa23648d1b8ce333e57864c3ed44b10ac1c51e34272c6cf7dbc288a885099", - "typeString": "literal_string \"dNFT: Withdraw amount exceeds deposit\"" - } - ], - "id": 28691, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7375:7:31", + }, + "id": 34055, + "nodeType": "ArrayTypeName", + "src": "16261:12:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_Permission_$32496_$dyn_storage_ptr", + "typeString": "enum DNft.Permission[]" + } + }, + "visibility": "internal" + } + ], + "src": "16211:87:40" + }, + "returnParameters": { + "id": 34061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34060, + "mutability": "mutable", + "name": "_hasPermissions", + "nameLocation": "16336:15:40", + "nodeType": "VariableDeclaration", + "scope": 34145, + "src": "16322:29:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 34058, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16322:4:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 28700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7375:76:31", - "tryCall": false, + "id": 34059, + "nodeType": "ArrayTypeName", + "src": "16322:6:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" } }, - "id": 28701, - "nodeType": "ExpressionStatement", - "src": "7375:76:31" - }, + "visibility": "internal" + } + ], + "src": "16321:31:40" + }, + "scope": 34366, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 34175, + "nodeType": "FunctionDefinition", + "src": "17144:142:40", + "nodes": [], + "body": { + "id": 34174, + "nodeType": "Block", + "src": "17193:93:40", + "nodes": [], + "statements": [ { "expression": { - "id": 28709, + "id": 34157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 28702, + "id": 34153, "name": "nft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28686, - "src": "7457:3:31", + "referencedDeclaration": 34148, + "src": "17201:3:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "id": 28704, + "id": 34155, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "7461:7:31", - "memberName": "deposit", + "memberLocation": "17205:2:40", + "memberName": "xp", "nodeType": "MemberAccess", - "referencedDeclaration": 28985, - "src": "7457:11:31", + "referencedDeclaration": 32478, + "src": "17201:6:40", "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", - "operator": "-=", + "operator": "+=", "rightHandSide": { - "arguments": [ - { - "id": 28707, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28646, - "src": "7478:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 28706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7474:3:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 28705, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "7474:3:31", - "typeDescriptions": {} - } - }, - "id": 28708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7474:11:31", - "tryCall": false, + "id": 34156, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34150, + "src": "17212:2:40", "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "7457:28:31", + "src": "17201:13:40", "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28710, + "id": 34158, "nodeType": "ExpressionStatement", - "src": "7457:28:31" + "src": "17201:13:40" }, { - "expression": { - "id": 28715, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "expression": { - "id": 28711, + "id": 34159, "name": "nft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28686, - "src": "7491:3:31", + "referencedDeclaration": 34148, + "src": "17226:3:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" } }, - "id": 28713, + "id": 34160, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "memberLocation": "7495:9:31", - "memberName": "withdrawn", + "lValueRequested": false, + "memberLocation": "17230:2:40", + "memberName": "xp", "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "7491:13:31", + "referencedDeclaration": 32478, + "src": "17226:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 34161, + "name": "maxXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32474, + "src": "17235:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17226:14:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34169, + "nodeType": "IfStatement", + "src": "17222:39:40", + "trueBody": { + "id": 34168, + "nodeType": "Block", + "src": "17242:19:40", + "statements": [ + { + "expression": { + "id": 34166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 34163, + "name": "maxXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32474, + "src": "17244:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 34164, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34148, + "src": "17252:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft memory" + } + }, + "id": 34165, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17256:2:40", + "memberName": "xp", + "nodeType": "MemberAccess", + "referencedDeclaration": 32478, + "src": "17252:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17244:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34167, + "nodeType": "ExpressionStatement", + "src": "17244:14:40" + } + ] + } + }, + { + "expression": { + "id": 34172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 34170, + "name": "totalXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32472, + "src": "17268:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9739,64 +25866,170 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 28714, - "name": "amount", + "id": 34171, + "name": "xp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28646, - "src": "7508:6:31", + "referencedDeclaration": 34150, + "src": "17279:2:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7491:23:31", + "src": "17268:13:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34173, + "nodeType": "ExpressionStatement", + "src": "17268:13:40" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addXp", + "nameLocation": "17153:6:40", + "parameters": { + "id": 34151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34148, + "mutability": "mutable", + "name": "nft", + "nameLocation": "17171:3:40", + "nodeType": "VariableDeclaration", + "scope": 34175, + "src": "17160:14:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_memory_ptr", + "typeString": "struct DNft.Nft" + }, + "typeName": { + "id": 34147, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34146, + "name": "Nft", + "nameLocations": [ + "17160:3:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32487, + "src": "17160:3:40" + }, + "referencedDeclaration": 32487, + "src": "17160:3:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Nft_$32487_storage_ptr", + "typeString": "struct DNft.Nft" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34150, + "mutability": "mutable", + "name": "xp", + "nameLocation": "17181:2:40", + "nodeType": "VariableDeclaration", + "scope": 34175, + "src": "17176:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34149, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17176:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 28716, - "nodeType": "ExpressionStatement", - "src": "7491:23:31" - }, + "visibility": "internal" + } + ], + "src": "17159:25:40" + }, + "returnParameters": { + "id": 34152, + "nodeType": "ParameterList", + "parameters": [], + "src": "17193:0:40" + }, + "scope": 34366, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "id": 34210, + "nodeType": "FunctionDefinition", + "src": "17335:276:40", + "nodes": [], + "body": { + "id": 34209, + "nodeType": "Block", + "src": "17421:190:40", + "nodes": [], + "statements": [ { - "expression": { - "arguments": [ - { - "expression": { - "id": 28720, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7534:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7538:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "7534:10:31", + "assignments": [ + 34185 + ], + "declarations": [ + { + "constant": false, + "id": 34185, + "mutability": "mutable", + "name": "relativeXp", + "nameLocation": "17463:10:40", + "nodeType": "VariableDeclaration", + "scope": 34209, + "src": "17458:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34184, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17458:4:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "visibility": "internal" + } + ], + "id": 34190, + "initialValue": { + "arguments": [ { - "id": 28722, - "name": "amount", + "id": 34188, + "name": "totalXp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28646, - "src": "7546:6:31", + "referencedDeclaration": 32472, + "src": "17490:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9805,43 +26038,39 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { - "id": 28717, - "name": "pool", + "id": 34186, + "name": "xp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "7520:4:31", + "referencedDeclaration": 34179, + "src": "17476:2:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28719, + "id": 34187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7525:8:31", - "memberName": "withdraw", + "memberLocation": "17479:10:40", + "memberName": "divWadDown", "nodeType": "MemberAccess", - "referencedDeclaration": 32660, - "src": "7520:13:31", + "referencedDeclaration": 31199, + "src": "17476:13:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 28723, + "id": 34189, "isConstant": false, "isLValue": false, "isPure": false, @@ -9850,99 +26079,237 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7520:33:31", + "src": "17476:22:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28724, - "nodeType": "ExpressionStatement", - "src": "7520:33:31" + "nodeType": "VariableDeclarationStatement", + "src": "17458:40:40" }, { - "eventCall": { - "arguments": [ + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 34193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34191, + "name": "share", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34177, + "src": "17510:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 34192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17518:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17510:9:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34201, + "nodeType": "IfStatement", + "src": "17506:50:40", + "trueBody": { + "id": 34200, + "nodeType": "Block", + "src": "17521:35:40", + "statements": [ { "expression": { - "id": 28726, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7578:3:31", + "id": 34198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 34194, + "name": "relativeXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34185, + "src": "17523:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31653138", + "id": 34195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17536:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 34196, + "name": "relativeXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34185, + "src": "17543:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17536:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17523:30:40", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7582:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "7578:10:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "id": 34199, + "nodeType": "ExpressionStatement", + "src": "17523:30:40" + } + ] + } + }, + { + "expression": { + "arguments": [ { - "id": 28728, - "name": "id", + "id": 34203, + "name": "share", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28644, - "src": "7590:2:31", + "referencedDeclaration": 34177, + "src": "17577:5:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, { - "id": 28729, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28646, - "src": "7594:6:31", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 34204, + "name": "relativeXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34185, + "src": "17584:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17595:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "17584:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" + } + }, + "id": 34206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17584:21:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } ], - "id": 28725, - "name": "DyadWithdrawn", + "id": 34202, + "name": "wadMul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28172, - "src": "7564:13:31", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "referencedDeclaration": 31434, + "src": "17570:6:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (int256,int256) pure returns (int256)" } }, - "id": 28730, + "id": 34207, "isConstant": false, "isLValue": false, "isPure": false, @@ -9951,96 +26318,65 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7564:37:31", + "src": "17570:36:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28731, - "nodeType": "EmitStatement", - "src": "7559:42:31" + "functionReturnParameters": 34183, + "id": 34208, + "nodeType": "Return", + "src": "17563:43:40" } ] }, - "functionSelector": "441a3e70", "implemented": true, "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 28649, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28644, - "src": "7122:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 28650, - "kind": "modifierInvocation", - "modifierName": { - "id": 28648, - "name": "onlyNFTOwner", - "nameLocations": [ - "7109:12:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28205, - "src": "7109:12:31" - }, - "nodeType": "ModifierInvocation", - "src": "7109:16:31" - } - ], - "name": "withdraw", - "nameLocation": "7069:8:31", + "modifiers": [], + "name": "_calcNftMint", + "nameLocation": "17344:12:40", "parameters": { - "id": 28647, + "id": 34180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28644, + "id": 34177, "mutability": "mutable", - "name": "id", - "nameLocation": "7083:2:31", + "name": "share", + "nameLocation": "17368:5:40", "nodeType": "VariableDeclaration", - "scope": 28733, - "src": "7078:7:31", + "scope": 34210, + "src": "17364:9:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { - "id": 28643, - "name": "uint", + "id": 34176, + "name": "int", "nodeType": "ElementaryTypeName", - "src": "7078:4:31", + "src": "17364:3:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, - "id": 28646, + "id": 34179, "mutability": "mutable", - "name": "amount", - "nameLocation": "7092:6:31", + "name": "xp", + "nameLocation": "17387:2:40", "nodeType": "VariableDeclaration", - "scope": 28733, - "src": "7087:11:31", + "scope": 34210, + "src": "17382:7:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10048,10 +26384,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28645, + "id": 34178, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7087:4:31", + "src": "17382:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10060,219 +26396,346 @@ "visibility": "internal" } ], - "src": "7077:22:31" + "src": "17356:37:40" }, "returnParameters": { - "id": 28651, + "id": 34183, "nodeType": "ParameterList", - "parameters": [], - "src": "7126:0:31" + "parameters": [ + { + "constant": false, + "id": 34182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34210, + "src": "17416:3:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34181, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "17416:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17415:5:40" }, - "scope": 28870, - "stateMutability": "nonpayable", + "scope": 34366, + "stateMutability": "view", "virtual": false, - "visibility": "external" + "visibility": "private" }, { - "id": 28808, + "id": 34287, "nodeType": "FunctionDefinition", - "src": "7647:620:31", + "src": "17666:624:40", "nodes": [], "body": { - "id": 28807, + "id": 34286, "nodeType": "Block", - "src": "7695:572:31", + "src": "17758:532:40", "nodes": [], "statements": [ { "assignments": [ - 28744 + 34222 ], "declarations": [ { "constant": false, - "id": 28744, + "id": 34222, "mutability": "mutable", - "name": "nft", - "nameLocation": "7719:3:31", + "name": "relativeXpToMax", + "nameLocation": "17771:15:40", "nodeType": "VariableDeclaration", - "scope": 28807, - "src": "7701:21:31", + "scope": 34286, + "src": "17766:20:40", "stateVariable": false, - "storageLocation": "storage", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 28743, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28742, - "name": "IdNFT.Nft", - "nameLocations": [ - "7701:5:31", - "7707:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "7701:9:31" - }, - "referencedDeclaration": 28988, - "src": "7701:9:31", + "id": 34221, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17766:4:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "id": 28748, + "id": 34227, "initialValue": { - "baseExpression": { - "id": 28745, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "7725:7:31", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" + "arguments": [ + { + "id": 34225, + "name": "maxXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32474, + "src": "17805:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 28747, - "indexExpression": { - "id": 28746, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28735, - "src": "7733:2:31", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 34223, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34214, + "src": "17791:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17794:10:40", + "memberName": "divWadDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 31199, + "src": "17791:13:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, + "id": 34226, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7725:11:31", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17791:20:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7701:35:31" + "src": "17766:45:40" }, { - "expression": { + "assignments": [ + 34229 + ], + "declarations": [ + { + "constant": false, + "id": 34229, + "mutability": "mutable", + "name": "relativeXpToTotal", + "nameLocation": "17824:17:40", + "nodeType": "VariableDeclaration", + "scope": 34286, + "src": "17819:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34228, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17819:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 34234, + "initialValue": { "arguments": [ { - "commonType": { + "id": 34232, + "name": "totalXp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32472, + "src": "17858:7:40", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 28753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 28750, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "7841:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 28751, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28744, - "src": "7851:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" - } - }, - "id": 28752, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7855:9:31", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "7851:13:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7841:23:31", + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 34230, + "name": "xp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34214, + "src": "17844:2:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17847:10:40", + "memberName": "divWadDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 31199, + "src": "17844:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 34233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17844:22:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17819:47:40" + }, + { + "assignments": [ + 34236 + ], + "declarations": [ + { + "constant": false, + "id": 34236, + "mutability": "mutable", + "name": "relativeXpNorm", + "nameLocation": "17879:14:40", + "nodeType": "VariableDeclaration", + "scope": 34286, + "src": "17874:19:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34235, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17874:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "visibility": "internal" + } + ], + "id": 34241, + "initialValue": { + "arguments": [ { - "hexValue": "644e46543a204465706f73697420657863656564732077697468647261776e", - "id": 28754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7866:33:31", + "id": 34239, + "name": "relativeXpToTotal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34229, + "src": "17926:17:40", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_666ec49dcf3ae237371a196e3bba01e26a32204ac4d6bf68d92a7d85ced84b7a", - "typeString": "literal_string \"dNFT: Deposit exceeds withdrawn\"" - }, - "value": "dNFT: Deposit exceeds withdrawn" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_666ec49dcf3ae237371a196e3bba01e26a32204ac4d6bf68d92a7d85ced84b7a", - "typeString": "literal_string \"dNFT: Deposit exceeds withdrawn\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 28749, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7833:7:31", + "expression": { + "id": 34237, + "name": "relativeXpToMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34222, + "src": "17899:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17915:10:40", + "memberName": "divWadDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 31199, + "src": "17899:26:40", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 28755, + "id": 34240, "isConstant": false, "isLValue": false, "isPure": false, @@ -10281,323 +26744,435 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7833:67:31", + "src": "17899:45:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28756, - "nodeType": "ExpressionStatement", - "src": "7833:67:31" + "nodeType": "VariableDeclarationStatement", + "src": "17874:70:40" }, { - "expression": { - "id": 28764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 28757, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28744, - "src": "7907:3:31", + "assignments": [ + 34243 + ], + "declarations": [ + { + "constant": false, + "id": 34243, + "mutability": "mutable", + "name": "oneMinusRank", + "nameLocation": "17957:12:40", + "nodeType": "VariableDeclaration", + "scope": 34286, + "src": "17952:17:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34242, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17952:4:40", "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28759, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "7911:7:31", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 28985, - "src": "7907:11:31", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "id": 28762, - "name": "amount", + "visibility": "internal" + } + ], + "id": 34248, + "initialValue": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31653138", + "id": 34244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17978:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 34245, + "name": "relativeXpToMax", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "7928:6:31", + "referencedDeclaration": 34222, + "src": "17985:15:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 28761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7924:3:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" }, - "typeName": { - "id": 28760, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "7924:3:31", - "typeDescriptions": {} + "src": "17978:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 28763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7924:11:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" } - }, - "src": "7907:28:31", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 28765, - "nodeType": "ExpressionStatement", - "src": "7907:28:31" - }, - { - "expression": { - "id": 28770, + ], + "id": 34247, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 28766, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28744, - "src": "7941:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" - } - }, - "id": 28768, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "7945:9:31", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "7941:13:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 28769, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "7958:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7941:23:31", + "nodeType": "TupleExpression", + "src": "17977:24:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 28771, - "nodeType": "ExpressionStatement", - "src": "7941:23:31" + "nodeType": "VariableDeclarationStatement", + "src": "17952:49:40" }, { - "expression": { - "arguments": [ - { - "expression": { - "id": 28775, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8112:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8116:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8112:10:31", + "assignments": [ + 34250 + ], + "declarations": [ + { + "constant": false, + "id": 34250, + "mutability": "mutable", + "name": "multi", + "nameLocation": "18014:5:40", + "nodeType": "VariableDeclaration", + "scope": 34286, + "src": "18009:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34249, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "18009:3:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - { + "visibility": "internal" + } + ], + "id": 34263, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "arguments": [ { - "id": 28779, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "8132:4:31", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34253, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24893, + "src": "18059:11:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 34254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18059:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31653138", + "id": 34255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18073:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "18059:18:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 34257, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18058:20:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 34258, + "name": "relativeXpNorm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34236, + "src": "18079:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18058:35:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_dNFT_$28870", - "typeString": "contract dNFT" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_dNFT_$28870", - "typeString": "contract dNFT" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 28778, + "expression": { + "id": 34251, + "name": "oneMinusRank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34243, + "src": "18034:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34252, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8124:7:31", + "memberLocation": "18047:10:40", + "memberName": "divWadDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 31199, + "src": "18034:23:40", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8124:7:31", - "typeDescriptions": {} + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 28780, + "id": 34260, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8124:13:31", + "src": "18034:60:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18095:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "18034:69:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" + } + }, + "id": 34262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18034:71:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18009:96:40" + }, + { + "assignments": [ + 34265 + ], + "declarations": [ + { + "constant": false, + "id": 34265, + "mutability": "mutable", + "name": "relativeShare", + "nameLocation": "18118:13:40", + "nodeType": "VariableDeclaration", + "scope": 34286, + "src": "18113:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34264, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "18113:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 34270, + "initialValue": { + "arguments": [ + { + "id": 34267, + "name": "multi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34250, + "src": "18145:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" } }, { - "id": 28781, - "name": "amount", + "id": 34268, + "name": "share", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "8139:6:31", + "referencedDeclaration": 34212, + "src": "18152:5:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_int256", + "typeString": "int256" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } ], - "expression": { - "id": 28772, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "8094:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" - } - }, - "id": 28774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8099:12:31", - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 23426, - "src": "8094:17:31", + "id": 34266, + "name": "wadMul", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31434, + "src": "18138:6:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (int256,int256) pure returns (int256)" } }, - "id": 28782, + "id": 34269, "isConstant": false, "isLValue": false, "isPure": false, @@ -10606,84 +27181,59 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8094:52:31", + "src": "18138:20:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28783, - "nodeType": "ExpressionStatement", - "src": "8094:52:31" + "nodeType": "VariableDeclarationStatement", + "src": "18113:45:40" }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 28789, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "8173:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - ], - "id": 28788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8165:7:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8165:7:31", - "typeDescriptions": {} - } - }, - "id": 28790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8165:13:31", - "tryCall": false, + "assignments": [ + 34272 + ], + "declarations": [ + { + "constant": false, + "id": 34272, + "mutability": "mutable", + "name": "xpAccrual", + "nameLocation": "18171:9:40", + "nodeType": "VariableDeclaration", + "scope": 34286, + "src": "18166:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18166:4:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "visibility": "internal" + } + ], + "id": 34279, + "initialValue": { + "arguments": [ { - "id": 28791, - "name": "amount", + "id": 34277, + "name": "relativeXpToMax", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "8180:6:31", + "referencedDeclaration": 34222, + "src": "18222:15:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10692,43 +27242,74 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { - "id": 28784, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "8152:4:31", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 34273, + "name": "relativeShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34265, + "src": "18191:13:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 34274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18205:3:40", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 28289, + "src": "18191:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$bound_to$_t_int256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 34275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18191:19:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28786, + "id": 34276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8157:7:31", - "memberName": "approve", + "memberLocation": "18211:10:40", + "memberName": "divWadDown", "nodeType": "MemberAccess", - "referencedDeclaration": 23393, - "src": "8152:12:31", + "referencedDeclaration": 31199, + "src": "18191:30:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 28792, + "id": 34278, "isConstant": false, "isLValue": false, "isPure": false, @@ -10737,209 +27318,397 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8152:35:31", + "src": "18191:47:40", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28793, - "nodeType": "ExpressionStatement", - "src": "8152:35:31" + "nodeType": "VariableDeclarationStatement", + "src": "18166:72:40" }, { "expression": { - "arguments": [ + "components": [ { - "id": 28797, - "name": "amount", + "id": 34280, + "name": "relativeShare", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "8206:6:31", + "referencedDeclaration": 34265, + "src": "18254:13:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } - } - ], - "expression": { - "argumentTypes": [ - { + }, + { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "expression": { - "id": 28794, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "8193:4:31", + }, + "id": 34283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34281, + "name": "xpAccrual", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34272, + "src": "18269:9:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "31653138", + "id": 34282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18279:4:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "18269:14:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 28796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8198:7:31", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 32643, - "src": "8193:12:31", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" } - }, - "id": 28798, + ], + "id": 34284, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8193:20:31", - "tryCall": false, + "nodeType": "TupleExpression", + "src": "18253:31:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$", + "typeString": "tuple(int256,uint256)" } }, - "id": 28799, - "nodeType": "ExpressionStatement", - "src": "8193:20:31" + "functionReturnParameters": 34220, + "id": 34285, + "nodeType": "Return", + "src": "18246:38:40" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcNftBurn", + "nameLocation": "17675:12:40", + "parameters": { + "id": 34215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34212, + "mutability": "mutable", + "name": "share", + "nameLocation": "17699:5:40", + "nodeType": "VariableDeclaration", + "scope": 34287, + "src": "17695:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34211, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "17695:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" }, { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 28801, - "name": "msg", + "constant": false, + "id": 34214, + "mutability": "mutable", + "name": "xp", + "nameLocation": "17718:2:40", + "nodeType": "VariableDeclaration", + "scope": 34287, + "src": "17713:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34213, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17713:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17687:37:40" + }, + "returnParameters": { + "id": 34220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34217, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34287, + "src": "17747:3:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34216, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "17747:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34287, + "src": "17752:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34218, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17752:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17746:11:40" + }, + "scope": 34366, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "id": 34304, + "nodeType": "FunctionDefinition", + "src": "18294:138:40", + "nodes": [], + "body": { + "id": 34303, + "nodeType": "Block", + "src": "18359:73:40", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 34298, + "name": "percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8239:3:31", + "referencedDeclaration": 34289, + "src": "18402:7:40", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 28802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8243:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8239:10:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - { - "id": 28803, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28735, - "src": "8251:2:31", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 34294, + "name": "dyad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32533, + "src": "18372:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dyad_$34418", + "typeString": "contract Dyad" + } + }, + "id": 34295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18377:11:40", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 30777, + "src": "18372:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 34296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18372:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18391:10:40", + "memberName": "mulWadDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 31167, + "src": "18372:29:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - { - "id": 28804, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28737, - "src": "8255:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 34299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18372:38:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 28800, - "name": "DyadDeposited", + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 34300, + "name": "XP_NORM_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28180, - "src": "8225:13:31", + "referencedDeclaration": 32439, + "src": "18413:14:40", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8225:37:31", - "tryCall": false, + "src": "18372:55:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28806, - "nodeType": "EmitStatement", - "src": "8220:42:31" + "functionReturnParameters": 34293, + "id": 34302, + "nodeType": "Return", + "src": "18365:62:40" } ] }, - "functionSelector": "e2bbb158", "implemented": true, "kind": "function", "modifiers": [], - "name": "deposit", - "nameLocation": "7656:7:31", + "name": "_calcXpReward", + "nameLocation": "18303:13:40", "parameters": { - "id": 28738, + "id": 34290, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28735, + "id": 34289, "mutability": "mutable", - "name": "id", - "nameLocation": "7669:2:31", + "name": "percent", + "nameLocation": "18322:7:40", "nodeType": "VariableDeclaration", - "scope": 28808, - "src": "7664:7:31", + "scope": 34304, + "src": "18317:12:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10947,26 +27716,33 @@ "typeString": "uint256" }, "typeName": { - "id": 28734, + "id": 34288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7664:4:31", + "src": "18317:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "18316:14:40" + }, + "returnParameters": { + "id": 34293, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 28737, + "id": 34292, "mutability": "mutable", - "name": "amount", - "nameLocation": "7678:6:31", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 28808, - "src": "7673:11:31", + "scope": 34304, + "src": "18353:4:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10974,10 +27750,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28736, + "id": 34291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7673:4:31", + "src": "18353:4:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10986,496 +27762,474 @@ "visibility": "internal" } ], - "src": "7663:22:31" - }, - "returnParameters": { - "id": 28739, - "nodeType": "ParameterList", - "parameters": [], - "src": "7695:0:31" + "src": "18352:6:40" }, - "scope": 28870, - "stateMutability": "nonpayable", + "scope": 34366, + "stateMutability": "view", "virtual": false, - "visibility": "external" + "visibility": "private" }, { - "id": 28869, + "id": 34322, "nodeType": "FunctionDefinition", - "src": "8296:363:31", + "src": "18475:120:40", "nodes": [], "body": { - "id": 28868, + "id": 34321, "nodeType": "Block", - "src": "8360:299:31", + "src": "18531:64:40", "nodes": [], "statements": [ { - "assignments": [ - 28822 - ], - "declarations": [ - { - "constant": false, - "id": 28822, - "mutability": "mutable", - "name": "nft", - "nameLocation": "8384:3:31", - "nodeType": "VariableDeclaration", - "scope": 28868, - "src": "8366:21:31", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" - }, - "typeName": { - "id": 28821, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 28820, - "name": "IdNFT.Nft", - "nameLocations": [ - "8366:5:31", - "8372:3:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28988, - "src": "8366:9:31" - }, - "referencedDeclaration": 28988, - "src": "8366:9:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft" - } - }, - "visibility": "internal" - } - ], - "id": 28826, - "initialValue": { - "baseExpression": { - "id": 28823, - "name": "idToNft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28150, - "src": "8390:7:31", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$28988_storage_$", - "typeString": "mapping(uint256 => struct IdNFT.Nft storage ref)" - } - }, - "id": 28825, - "indexExpression": { - "id": 28824, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28810, - "src": "8398:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" }, + "id": 34319, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8390:11:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage", - "typeString": "struct IdNFT.Nft storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8366:35:31" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 28831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 28828, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28812, - "src": "8415:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 28829, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28822, - "src": "8425:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34311, + "name": "eth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34306, + "src": "18547:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "316538", + "id": 34312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18551:3:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "value": "1e8" + }, + "src": "18547:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 28830, + ], + "id": 34314, "isConstant": false, - "isLValue": true, + "isInlineArray": false, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8429:9:31", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "8425:13:31", + "nodeType": "TupleExpression", + "src": "18546:9:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8415:23:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "644e46543a20416d6f756e7420746f2072656465656d20657863656564732077697468647261776e", - "id": 28832, + "id": 34315, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8440:42:31", + "memberLocation": "18556:8:40", + "memberName": "toInt256", + "nodeType": "MemberAccess", + "referencedDeclaration": 28184, + "src": "18546:18:40", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5eb5367f717f4cf91696d0fd38ddaff184a5c5d055d6179c7c8ee34ea21951d", - "typeString": "literal_string \"dNFT: Amount to redeem exceeds withdrawn\"" - }, - "value": "dNFT: Amount to redeem exceeds withdrawn" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (int256)" + } + }, + "id": 34316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18546:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5eb5367f717f4cf91696d0fd38ddaff184a5c5d055d6179c7c8ee34ea21951d", - "typeString": "literal_string \"dNFT: Amount to redeem exceeds withdrawn\"" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34317, + "name": "_getLatestEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34335, + "src": "18569:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$", + "typeString": "function () view returns (int256)" } - ], - "id": 28827, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8407:7:31", + }, + "id": 34318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18569:20:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8407:76:31", - "tryCall": false, + "src": "18546:43:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28834, - "nodeType": "ExpressionStatement", - "src": "8407:76:31" - }, + "functionReturnParameters": 34310, + "id": 34320, + "nodeType": "Return", + "src": "18539:50:40" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_eth2dyad", + "nameLocation": "18484:9:40", + "parameters": { + "id": 34307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34306, + "mutability": "mutable", + "name": "eth", + "nameLocation": "18499:3:40", + "nodeType": "VariableDeclaration", + "scope": 34322, + "src": "18494:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34305, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18494:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18493:10:40" + }, + "returnParameters": { + "id": 34310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34309, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34322, + "src": "18526:3:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34308, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "18526:3:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18525:5:40" + }, + "scope": 34366, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "id": 34335, + "nodeType": "FunctionDefinition", + "src": "18621:119:40", + "nodes": [], + "body": { + "id": 34334, + "nodeType": "Block", + "src": "18684:56:40", + "nodes": [], + "statements": [ { "expression": { - "id": 28839, + "id": 34332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "expression": { - "id": 28835, - "name": "nft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28822, - "src": "8489:3:31", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Nft_$28988_storage_ptr", - "typeString": "struct IdNFT.Nft storage pointer" - } - }, - "id": 28837, + "components": [ + null, + { + "id": 34327, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34325, + "src": "18696:5:40", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + null, + null, + null + ], + "id": 34328, "isConstant": false, + "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "8493:9:31", - "memberName": "withdrawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 28983, - "src": "8489:13:31", + "nodeType": "TupleExpression", + "src": "18692:16:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$_t_int256_$__$__$__$", + "typeString": "tuple(,int256,,,)" } }, "nodeType": "Assignment", - "operator": "-=", + "operator": "=", "rightHandSide": { - "id": 28838, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28812, - "src": "8506:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8489:23:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 28840, - "nodeType": "ExpressionStatement", - "src": "8489:23:31" - }, - { - "expression": { - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { - "id": 28844, - "name": "msg", + "id": 34329, + "name": "oracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8536:3:31", + "referencedDeclaration": 32536, + "src": "18711:6:40", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_contract$_IAggregatorV3_$34464", + "typeString": "contract IAggregatorV3" } }, - "id": 28845, + "id": 34330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8540:6:31", - "memberName": "sender", + "memberLocation": "18718:15:40", + "memberName": "latestRoundData", "nodeType": "MemberAccess", - "src": "8536:10:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 28848, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "8556:4:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" - } - ], - "id": 28847, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8548:7:31", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28846, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8548:7:31", - "typeDescriptions": {} - } - }, - "id": 28849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8548:13:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 28850, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28812, - "src": "8563:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 28841, - "name": "dyad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28142, - "src": "8518:4:31", + "referencedDeclaration": 34463, + "src": "18711:22:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_DYAD_$28933", - "typeString": "contract DYAD" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", + "typeString": "function () view external returns (uint80,int256,uint256,uint256,uint80)" } }, - "id": 28843, + "id": 34331, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberLocation": "8523:12:31", - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 23426, - "src": "8518:17:31", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18711:24:40", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", + "typeString": "tuple(uint80,int256,uint256,uint256,uint80)" } }, - "id": 28851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8518:52:31", - "tryCall": false, + "src": "18692:43:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34333, + "nodeType": "ExpressionStatement", + "src": "18692:43:40" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getLatestEthPrice", + "nameLocation": "18630:18:40", + "parameters": { + "id": 34323, + "nodeType": "ParameterList", + "parameters": [], + "src": "18648:2:40" + }, + "returnParameters": { + "id": 34326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34325, + "mutability": "mutable", + "name": "price", + "nameLocation": "18677:5:40", + "nodeType": "VariableDeclaration", + "scope": 34335, + "src": "18673:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 34324, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "18673:3:40", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "id": 28852, - "nodeType": "ExpressionStatement", - "src": "8518:52:31" - }, + "visibility": "internal" + } + ], + "src": "18672:11:40" + }, + "scope": 34366, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "id": 34365, + "nodeType": "FunctionDefinition", + "src": "18744:262:40", + "nodes": [], + "body": { + "id": 34364, + "nodeType": "Block", + "src": "18883:123:40", + "nodes": [], + "statements": [ { "expression": { "arguments": [ { - "expression": { - "id": 28856, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8588:3:31", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 28857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8592:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8588:10:31", + "id": 34350, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34337, + "src": "18918:5:40", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 28858, - "name": "amount", + "id": 34351, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34339, + "src": "18925:3:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 34352, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34341, + "src": "18930:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34353, + "name": "_batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28812, - "src": "8600:6:31", + "referencedDeclaration": 34343, + "src": "18935:10:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11488,39 +28242,47 @@ "typeIdentifier": "t_address", "typeString": "address" }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { - "id": 28853, - "name": "pool", + "id": 34347, + "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28145, - "src": "8576:4:31", + "referencedDeclaration": -25, + "src": "18891:5:40", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pool_$32759", - "typeString": "contract Pool" + "typeIdentifier": "t_type$_t_super$_DNft_$34366_$", + "typeString": "type(contract super DNft)" } }, - "id": 28855, + "id": 34349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8581:6:31", - "memberName": "redeem", + "memberLocation": "18897:20:40", + "memberName": "_beforeTokenTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 32692, - "src": "8576:11:31", + "referencedDeclaration": 24996, + "src": "18891:26:40", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" } }, - "id": 28859, + "id": 34354, "isConstant": false, "isLValue": false, "isPure": false, @@ -11529,170 +28291,201 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8576:31:31", + "src": "18891:55:40", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28860, + "id": 34355, "nodeType": "ExpressionStatement", - "src": "8576:31:31" + "src": "18891:55:40" }, { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 28862, - "name": "msg", + "expression": { + "id": 34362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 34356, + "name": "idToNft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8631:3:31", + "referencedDeclaration": 32513, + "src": "18954:7:40", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Nft_$32487_storage_$", + "typeString": "mapping(uint256 => struct DNft.Nft storage ref)" + } + }, + "id": 34358, + "indexExpression": { + "id": 34357, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34341, + "src": "18962:3:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28863, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8635:6:31", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8631:10:31", + "nodeType": "IndexAccess", + "src": "18954:12:40", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Nft_$32487_storage", + "typeString": "struct DNft.Nft storage ref" } }, - { - "id": 28864, - "name": "id", + "id": 34359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "18967:19:40", + "memberName": "lastOwnershipChange", + "nodeType": "MemberAccess", + "referencedDeclaration": 32484, + "src": "18954:32:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 34360, + "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28810, - "src": "8643:2:31", + "referencedDeclaration": -4, + "src": "18989:5:40", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_block", + "typeString": "block" } }, - { - "id": 28865, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28812, - "src": "8647:6:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 28861, - "name": "DyadRedeemed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28188, - "src": "8618:12:31", + "id": 34361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18995:6:40", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "18989:12:40", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8618:36:31", - "tryCall": false, + "src": "18954:47:40", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 28867, - "nodeType": "EmitStatement", - "src": "8613:41:31" + "id": 34363, + "nodeType": "ExpressionStatement", + "src": "18954:47:40" } ] }, - "functionSelector": "7cbc2373", + "baseFunctions": [ + 24996 + ], "implemented": true, "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 28815, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28810, - "src": "8356:2:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 28816, - "kind": "modifierInvocation", - "modifierName": { - "id": 28814, - "name": "onlyNFTOwner", - "nameLocations": [ - "8343:12:31" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 28205, - "src": "8343:12:31" - }, - "nodeType": "ModifierInvocation", - "src": "8343:16:31" - } - ], - "name": "redeem", - "nameLocation": "8305:6:31", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "18753:20:40", + "overrides": { + "id": 34345, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "18874:8:40" + }, "parameters": { - "id": 28813, + "id": 34344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 28810, + "id": 34337, "mutability": "mutable", - "name": "id", - "nameLocation": "8317:2:31", + "name": "_from", + "nameLocation": "18789:5:40", + "nodeType": "VariableDeclaration", + "scope": 34365, + "src": "18781:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18781:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34339, + "mutability": "mutable", + "name": "_to", + "nameLocation": "18810:3:40", + "nodeType": "VariableDeclaration", + "scope": 34365, + "src": "18802:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18802:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34341, + "mutability": "mutable", + "name": "_id", + "nameLocation": "18829:3:40", "nodeType": "VariableDeclaration", - "scope": 28869, - "src": "8312:7:31", + "scope": 34365, + "src": "18821:11:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11700,10 +28493,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28809, - "name": "uint", + "id": 34340, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8312:4:31", + "src": "18821:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11713,13 +28506,13 @@ }, { "constant": false, - "id": 28812, + "id": 34343, "mutability": "mutable", - "name": "amount", - "nameLocation": "8326:6:31", + "name": "_batchSize", + "nameLocation": "18849:10:40", "nodeType": "VariableDeclaration", - "scope": 28869, - "src": "8321:11:31", + "scope": 34365, + "src": "18841:18:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11727,10 +28520,10 @@ "typeString": "uint256" }, "typeName": { - "id": 28811, - "name": "uint", + "id": 34342, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8321:4:31", + "src": "18841:7:40", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11739,76 +28532,99 @@ "visibility": "internal" } ], - "src": "8311:22:31" + "src": "18773:91:40" }, "returnParameters": { - "id": 28817, + "id": 34346, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:31" + "src": "18883:0:40" }, - "scope": 28870, + "scope": 34366, "stateMutability": "nonpayable", "virtual": false, - "visibility": "external" + "visibility": "internal" } ], "abstract": false, "baseContracts": [ { "baseName": { - "id": 28118, + "id": 32395, "name": "ERC721Enumerable", "nameLocations": [ - "359:16:31" + "781:16:40" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25423, - "src": "359:16:31" + "referencedDeclaration": 25158, + "src": "781:16:40" }, - "id": 28119, + "id": 32396, "nodeType": "InheritanceSpecifier", - "src": "359:16:31" + "src": "781:16:40" }, { "baseName": { - "id": 28120, - "name": "ERC721Burnable", + "id": 32397, + "name": "ReentrancyGuard", "nameLocations": [ - "377:14:31" + "799:15:40" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25069, - "src": "377:14:31" + "referencedDeclaration": 31367, + "src": "799:15:40" }, - "id": 28121, + "id": 32398, "nodeType": "InheritanceSpecifier", - "src": "377:14:31" + "src": "799:15:40" } ], - "canonicalName": "dNFT", + "canonicalName": "DNft", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 28870, - 25069, - 25423, - 25454, - 24905, - 25481, - 25021, - 26032, - 26044, - 25833 + 34366, + 31367, + 25158, + 25189, + 24670, + 25216, + 24786, + 25767, + 25779, + 25568 ], - "name": "dNFT", - "nameLocation": "351:4:31", - "scope": 28871, - "usedErrors": [] + "name": "DNft", + "nameLocation": "773:4:40", + "scope": 34367, + "usedErrors": [ + 32620, + 32622, + 32624, + 32628, + 32632, + 32636, + 32640, + 32644, + 32648, + 32652, + 32656, + 32660, + 32664, + 32668, + 32672, + 32676, + 32680, + 32686, + 32692, + 32698, + 32705, + 32709 + ] } ], "license": "MIT" }, - "id": 31 -} + "id": 40 +} \ No newline at end of file diff --git a/app.js b/app.js index 34928e2..cd0e3fc 100644 --- a/app.js +++ b/app.js @@ -110,7 +110,8 @@ async function insertNfts(event) { const lastVersion = await getLastVersion(); const nextVersion = lastVersion + 1; - const syncId = parseEvent(event).syncId; + // const syncId = parseEvent(event).syncId; + const syncId = 0; insertNextVersion(nextVersion, syncId); const totalSupply = await dNftContract.methods.totalSupply().call(); @@ -142,9 +143,10 @@ function subscribeToSync() { }, (_, event) => { insertNfts(event); - upsertEns(); + // upsertEns(); } ); } +insertNfts(); subscribeToSync();